diff --git a/docs/concepts/enforcement.md b/docs/concepts/enforcement.md index a2a3464..a79159c 100644 --- a/docs/concepts/enforcement.md +++ b/docs/concepts/enforcement.md @@ -127,6 +127,82 @@ Server-Timing: capiscio-auth;dur=0.618;desc="CapiscIO Verification" * `dur`: Duration in milliseconds. * `desc`: Description of the operation. +## 5. Policy Enforcement (PDP Integration) + +Badge verification answers **"who is calling?"** — but not **"are they allowed to do this?"**. Policy enforcement adds authorization decisions via a Policy Decision Point (PDP). + +### How It Works + +The Policy Enforcement Point (PEP) sits between badge verification and your route handlers. After a badge is verified, the PEP asks an external PDP whether the request should proceed. + +``` +┌─────────┐ ┌─────────────┐ ┌─────┐ ┌──────────────┐ +│ Request │────▶│ Badge │────▶│ PEP │────▶│ Your Handler │ +│(+ badge) │ │ Verification│ │ │ │ │ +└─────────┘ └─────────────┘ └──┬──┘ └──────────────┘ + │ + ┌────▼────┐ + │ PDP │ + │(external)│ + └─────────┘ +``` + +The PEP sends a **PIP request** (Policy Information Point) containing identity, action, and resource attributes. The PDP returns ALLOW or DENY, plus optional **obligations** the PEP must enforce. + +### Enforcement Modes + +Four modes control how strictly the PEP enforces PDP decisions. They form a total order from most permissive to most restrictive: + +| Mode | PDP Denies | PDP Unavailable | Unknown Obligation | +|------|-----------|-----------------|-------------------| +| **EM-OBSERVE** | Log only, allow through | Allow (emit `ALLOW_OBSERVE`) | Log, skip | +| **EM-GUARD** | Block request | Deny (fail-closed) | Log, skip | +| **EM-DELEGATE** | Block request | Deny (fail-closed) | Log warning, proceed | +| **EM-STRICT** | Block request | Deny (fail-closed) | Deny request | + +Start with `EM-OBSERVE` to monitor decisions without affecting traffic, then tighten as your policies mature. + +### Obligations + +A PDP can attach obligations to an ALLOW decision — actions the PEP must perform before forwarding the request. Examples from the RFC: + +| Obligation Type | Purpose | Example Params | +|----------------|---------|----------------| +| `rate_limit.apply` | Enforce per-agent rate limits | `{ "rpm": 100, "key": "agent-did" }` | +| `redact.fields` | Remove sensitive fields | `{ "fields": ["/pii/email"] }` | +| `log.enhanced` | Enhanced audit logging | `{ "level": "audit" }` | +| `require_step_up` | Require human review | `{ "mode": "human_review" }` | + +How the PEP handles obligation failures depends on the enforcement mode. In EM-STRICT, failing to enforce any known obligation blocks the request. In EM-OBSERVE, failures are logged but the request proceeds. + +### Decision Caching + +The PEP caches ALLOW decisions to reduce PDP latency. Cache keys are derived from the agent DID, badge JTI, operation, and resource. The effective TTL is the minimum of: + +- The PDP-returned `ttl` +- The badge `exp` (expiry) +- The envelope `expires_at` (if present) + +DENY decisions are not cached by default. + +### Break-Glass Override + +For emergencies, a break-glass token bypasses the PDP entirely. The token is a signed JWS (EdDSA) with a scoped grant and an expiry (recommended: 5 minutes). It skips authorization but **not** authentication — the badge must still be valid. + +The PEP emits `capiscio.policy.override = true` telemetry for audit when a break-glass token is used. + +!!! warning "Break-Glass Keys" + Use a separate Ed25519 keypair for break-glass tokens. Do not reuse your CA badge-signing key. + +### Badge-Only Mode + +If no PDP endpoint is configured, the PEP is a no-op passthrough. Badge verification still runs, but no policy decisions are made. This is the default behavior. + +!!! tip "Getting Started" + See [Policy Enforcement Setup](../how-to/security/policy-enforcement.md) for step-by-step configuration. + +--- + ## Summary: What Guard Does and Doesn't Do | Guard Does | Guard Doesn't | @@ -135,3 +211,5 @@ Server-Timing: capiscio-auth;dur=0.618;desc="CapiscIO Verification" | ✅ Enforce payload integrity (SHA-256 body hash) | ❌ Manage a central registry (coming soon) | | ✅ Block replay attacks (timestamp validation) | ❌ Replace your IAM/SSO (human auth) | | ✅ Work with keys you provision | ❌ Auto-discover external agent keys (coming soon) | +| ✅ Enforce PDP policy decisions (when configured) | ❌ Provide a PDP (bring your own) | +| ✅ Support break-glass emergency overrides | ❌ Bypass authentication for overrides | diff --git a/docs/how-to/security/policy-enforcement.md b/docs/how-to/security/policy-enforcement.md new file mode 100644 index 0000000..97ea6f2 --- /dev/null +++ b/docs/how-to/security/policy-enforcement.md @@ -0,0 +1,181 @@ +--- +title: Policy Enforcement Setup +description: Configure PDP integration to add authorization decisions to your agent +--- + +# Policy Enforcement Setup + +Add authorization decisions to badge-verified requests by connecting to a Policy Decision Point (PDP). + +--- + +## Problem + +You need to: + +- Control which agents can access which endpoints based on policy +- Enforce rate limits, field redaction, or audit logging per-agent +- Gradually roll out policy enforcement without breaking existing traffic +- Override policy in emergencies + +--- + +## Solution + +Configure the CapiscIO server to forward policy queries to your PDP. The PEP middleware runs after badge verification and before your route handlers. + +--- + +## Prerequisites + +- A running CapiscIO server with badge verification enabled +- A PDP that accepts HTTP POST requests with PIP-format decision requests (RFC-005 §5.1) + +--- + +## Step 1: Start in Observe Mode + +Begin with `EM-OBSERVE` to monitor PDP decisions without affecting traffic: + +```bash +export CAPISCIO_PDP_ENDPOINT=http://localhost:9090/v1/evaluate +export CAPISCIO_ENFORCEMENT_MODE=EM-OBSERVE +export CAPISCIO_PDP_TIMEOUT_MS=500 +``` + +In this mode, PDP DENY decisions are logged but requests proceed. If the PDP is unreachable, requests also proceed with an `ALLOW_OBSERVE` telemetry marker. + +Restart the server and monitor logs for `capiscio.policy_enforced` events. + +--- + +## Step 2: Review Decisions + +Check server logs for policy events. Each request that passes through the PEP emits: + +| Field | Description | +|-------|-------------| +| `capiscio.policy.decision` | `ALLOW`, `DENY`, or `ALLOW_OBSERVE` | +| `capiscio.policy.decision_id` | Unique ID from the PDP | +| `capiscio.policy.error_code` | `PDP_UNAVAILABLE` if PDP was unreachable | + +Verify that legitimate requests receive `ALLOW` and unauthorized access patterns receive `DENY` before tightening the enforcement mode. + +--- + +## Step 3: Tighten Enforcement + +Once decisions look correct, switch to `EM-GUARD`: + +```bash +export CAPISCIO_ENFORCEMENT_MODE=EM-GUARD +``` + +Now PDP DENY decisions block requests with `403 Forbidden`. If the PDP is unavailable, requests are denied with `503 Service Unavailable` (fail-closed). + +For full obligation enforcement, use `EM-STRICT`: + +```bash +export CAPISCIO_ENFORCEMENT_MODE=EM-STRICT +``` + +In EM-STRICT, unknown obligation types cause the request to be denied. + +--- + +## Step 4: Configure Break-Glass (Optional) + +For emergency access when the PDP is down or mis-configured: + +1. Generate a dedicated Ed25519 keypair for break-glass tokens: + + ```bash + capiscio keygen --output breakglass-key + ``` + +2. Configure the server with the public key path: + + ```bash + export CAPISCIO_BREAKGLASS_PUBLIC_KEY=/etc/capiscio/breakglass-key.pub.pem + ``` + +3. In an emergency, issue a break-glass token and include it as the `X-Capiscio-Breakglass` header. The token must contain a `reason`, scoped `methods`/`routes`, and a short expiry. + +!!! warning + Break-glass bypasses authorization but **not** authentication. The request must still carry a valid badge. + +--- + +## Configuration Reference + +All PDP-related environment variables: + +| Variable | Default | Description | +|----------|---------|-------------| +| `CAPISCIO_PDP_ENDPOINT` | _(empty)_ | PDP URL. Empty = badge-only mode (no policy enforcement) | +| `CAPISCIO_PDP_TIMEOUT_MS` | `500` | PDP query timeout in milliseconds | +| `CAPISCIO_ENFORCEMENT_MODE` | `EM-OBSERVE` | One of: `EM-OBSERVE`, `EM-GUARD`, `EM-DELEGATE`, `EM-STRICT` | +| `CAPISCIO_BREAKGLASS_PUBLIC_KEY` | _(empty)_ | Path to break-glass Ed25519 public key file | +| `CAPISCIO_PEP_ID` | _(empty)_ | PEP instance identifier (sent to PDP as `X-Capiscio-PEP-ID`) | +| `CAPISCIO_WORKSPACE` | _(empty)_ | Workspace/tenant identifier | + +--- + +## PDP Request Format + +The PEP sends a JSON POST to the PDP endpoint. Your PDP must accept this format: + +```json +{ + "pip_version": "capiscio.pip.v1", + "subject": { + "did": "did:web:agent.example.com", + "badge_jti": "badge-uuid", + "ial": "1", + "trust_level": "DV" + }, + "action": { + "operation": "POST /api/v1/badges", + "capability_class": null + }, + "resource": { + "identifier": "/api/v1/badges" + }, + "context": { + "txn_id": "txn-uuid", + "enforcement_mode": "EM-GUARD" + }, + "environment": { + "workspace": "production", + "pep_id": "server-01", + "time": "2026-03-01T12:00:00Z" + } +} +``` + +And return: + +```json +{ + "decision": "ALLOW", + "decision_id": "eval-uuid", + "obligations": [], + "reason": "Policy matched: allow-trusted-agents", + "ttl": 300 +} +``` + +--- + +## Verification + +Confirm policy enforcement is active: + +```bash +# Send a request and check response headers +curl -v https://your-server/api/v1/badges \ + -H "X-Capiscio-Badge: $BADGE_JWS" + +# Look for Server-Timing header with policy timing +# Server-Timing: capiscio-auth;dur=0.6, capiscio-policy;dur=12.3 +``` diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index cb5f686..784329b 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -206,6 +206,32 @@ config = SecurityConfig.from_env() --- +## Policy Enforcement (Server) + +These environment variables configure the PDP integration on the CapiscIO server (RFC-005). They are read by the server, not the SDK. + +| Variable | Type | Default | Description | +|----------|------|---------|-------------| +| `CAPISCIO_PDP_ENDPOINT` | `string` | _(empty)_ | PDP URL. Empty = badge-only mode | +| `CAPISCIO_PDP_TIMEOUT_MS` | `int` | `500` | PDP query timeout in milliseconds | +| `CAPISCIO_ENFORCEMENT_MODE` | `string` | `EM-OBSERVE` | `EM-OBSERVE`, `EM-GUARD`, `EM-DELEGATE`, or `EM-STRICT` | +| `CAPISCIO_BREAKGLASS_PUBLIC_KEY` | `string` | _(empty)_ | Path to break-glass Ed25519 public key | +| `CAPISCIO_PEP_ID` | `string` | _(empty)_ | PEP instance identifier | +| `CAPISCIO_WORKSPACE` | `string` | _(empty)_ | Workspace/tenant identifier | + +### Example + +```bash +# Enable policy enforcement in observe mode +export CAPISCIO_PDP_ENDPOINT=http://pdp.internal:9090/v1/evaluate +export CAPISCIO_ENFORCEMENT_MODE=EM-OBSERVE +export CAPISCIO_PDP_TIMEOUT_MS=500 +``` + +See [Policy Enforcement Setup](../how-to/security/policy-enforcement.md) for step-by-step configuration. + +--- + ## Complete Example ```python diff --git a/docs/reference/go-api.md b/docs/reference/go-api.md index 53b611e..fc047d8 100644 --- a/docs/reference/go-api.md +++ b/docs/reference/go-api.md @@ -6,14 +6,14 @@ This API reference is automatically generated from the Go source code in [capiscio-core](https://github.com/capiscio/capiscio-core) using `gomarkdoc`. - **Regenerate:** `gomarkdoc ./pkg/... > docs/reference/go-api.md` + **Regenerate:** `./scripts/generate-docs.sh` --- -## Package: agentcard +# agentcard ```go -import "github.com/capiscio/capiscio-core/pkg/agentcard" +import "github.com/capiscio/capiscio-core/v2/pkg/agentcard" ``` Package agentcard defines the data structures for the A2A Agent Card. @@ -176,27 +176,204 @@ const ( # badge ```go -import "github.com/capiscio/capiscio-core/pkg/badge" +import "github.com/capiscio/capiscio-core/v2/pkg/badge" ``` +Package badge provides badge client functionality for requesting badges from a CA. + Package badge provides functionality for issuing and verifying Trust Badges. +Package badge provides badge client functionality for requesting badges from a CA. + ## Index +- [Constants](<#constants>) +- [Variables](<#variables>) +- [func GetErrorCode\(err error\) string](<#GetErrorCode>) - [func SignBadge\(claims \*Claims, privateKey crypto.PrivateKey\) \(string, error\)](<#SignBadge>) +- [type ChallengeResponse](<#ChallengeResponse>) - [type Claims](<#Claims>) + - [func \(c \*Claims\) AgentID\(\) string](<#Claims.AgentID>) + - [func \(c \*Claims\) AssuranceLevel\(\) string](<#Claims.AssuranceLevel>) + - [func \(c \*Claims\) Domain\(\) string](<#Claims.Domain>) + - [func \(c \*Claims\) ExpiresAt\(\) time.Time](<#Claims.ExpiresAt>) + - [func \(c \*Claims\) HasProofOfPossession\(\) bool](<#Claims.HasProofOfPossession>) + - [func \(c \*Claims\) IsExpired\(\) bool](<#Claims.IsExpired>) + - [func \(c \*Claims\) IsNotYetValid\(\) bool](<#Claims.IsNotYetValid>) + - [func \(c \*Claims\) IssuedAtTime\(\) time.Time](<#Claims.IssuedAtTime>) + - [func \(c \*Claims\) TrustLevel\(\) string](<#Claims.TrustLevel>) +- [type Client](<#Client>) + - [func NewClient\(caURL, apiKey string\) \*Client](<#NewClient>) + - [func \(c \*Client\) RequestBadge\(ctx context.Context, opts RequestBadgeOptions\) \(\*RequestBadgeResult, error\)](<#Client.RequestBadge>) +- [type ClientError](<#ClientError>) + - [func \(e \*ClientError\) Error\(\) string](<#ClientError.Error>) + - [func \(e \*ClientError\) IsAuthError\(\) bool](<#ClientError.IsAuthError>) + - [func \(e \*ClientError\) IsNotFoundError\(\) bool](<#ClientError.IsNotFoundError>) +- [type ConfirmationClaim](<#ConfirmationClaim>) - [type CredentialSubject](<#CredentialSubject>) +- [type DVClient](<#DVClient>) + - [func NewDVClient\(caURL string\) \*DVClient](<#NewDVClient>) + - [func NewDVClientWithHTTPClient\(caURL string, httpClient \*http.Client\) \*DVClient](<#NewDVClientWithHTTPClient>) + - [func \(c \*DVClient\) CreateOrder\(ctx context.Context, domain, challengeType string, jwk \*jose.JSONWebKey\) \(\*DVOrder, error\)](<#DVClient.CreateOrder>) + - [func \(c \*DVClient\) FinalizeOrder\(ctx context.Context, orderID string\) \(\*DVGrant, error\)](<#DVClient.FinalizeOrder>) + - [func \(c \*DVClient\) GetOrder\(ctx context.Context, orderID string\) \(\*DVOrder, error\)](<#DVClient.GetOrder>) +- [type DVGrant](<#DVGrant>) +- [type DVOrder](<#DVOrder>) +- [type Error](<#Error>) + - [func AsError\(err error\) \(\*Error, bool\)](<#AsError>) + - [func NewError\(code, message string\) \*Error](<#NewError>) + - [func WrapError\(code, message string, cause error\) \*Error](<#WrapError>) + - [func \(e \*Error\) Error\(\) string](<#Error.Error>) + - [func \(e \*Error\) Is\(target error\) bool](<#Error.Is>) + - [func \(e \*Error\) Unwrap\(\) error](<#Error.Unwrap>) - [type Keeper](<#Keeper>) - - [func NewKeeper\(config KeeperConfig\) \*Keeper](<#NewKeeper>) + - [func NewKeeper\(config KeeperConfig\) \(\*Keeper, error\)](<#NewKeeper>) - [func \(k \*Keeper\) CheckAndRenew\(\) error](<#Keeper.CheckAndRenew>) - [func \(k \*Keeper\) Renew\(\) error](<#Keeper.Renew>) - [func \(k \*Keeper\) Run\(ctx context.Context\) error](<#Keeper.Run>) + - [func \(k \*Keeper\) RunWithEvents\(ctx context.Context, events chan\<\- KeeperEvent\) error](<#Keeper.RunWithEvents>) - [type KeeperConfig](<#KeeperConfig>) +- [type KeeperEvent](<#KeeperEvent>) +- [type KeeperEventType](<#KeeperEventType>) +- [type KeeperMode](<#KeeperMode>) +- [type PoPClient](<#PoPClient>) + - [func NewPoPClient\(caURL, apiKey string\) \*PoPClient](<#NewPoPClient>) + - [func NewPoPClientWithHTTPClient\(caURL, apiKey string, httpClient \*http.Client\) \*PoPClient](<#NewPoPClientWithHTTPClient>) + - [func \(c \*PoPClient\) RequestPoPBadge\(ctx context.Context, opts RequestPoPBadgeOptions\) \(\*RequestPoPBadgeResult, error\)](<#PoPClient.RequestPoPBadge>) +- [type PoPProofClaims](<#PoPProofClaims>) +- [type RenewalResult](<#RenewalResult>) +- [type RequestBadgeOptions](<#RequestBadgeOptions>) +- [type RequestBadgeResult](<#RequestBadgeResult>) +- [type RequestPoPBadgeOptions](<#RequestPoPBadgeOptions>) +- [type RequestPoPBadgeResult](<#RequestPoPBadgeResult>) +- [type RevocationCache](<#RevocationCache>) - [type VerifiableCredential](<#VerifiableCredential>) - [type Verifier](<#Verifier>) - [func NewVerifier\(reg registry.Registry\) \*Verifier](<#NewVerifier>) - [func \(v \*Verifier\) Verify\(ctx context.Context, token string\) \(\*Claims, error\)](<#Verifier.Verify>) + - [func \(v \*Verifier\) VerifyWithOptions\(ctx context.Context, token string, opts VerifyOptions\) \(\*VerifyResult, error\)](<#Verifier.VerifyWithOptions>) +- [type VerifyMode](<#VerifyMode>) +- [type VerifyOptions](<#VerifyOptions>) +- [type VerifyResult](<#VerifyResult>) + + +## Constants + +Error codes as defined in RFC\-002 §8.4. These are spec\-level error codes, not HTTP status codes. + +```go +const ( + // ErrCodeMalformed indicates the JWS structure is invalid. + ErrCodeMalformed = "BADGE_MALFORMED" + + // ErrCodeSignatureInvalid indicates signature verification failed. + ErrCodeSignatureInvalid = "BADGE_SIGNATURE_INVALID" + + // ErrCodeExpired indicates current time >= exp. + ErrCodeExpired = "BADGE_EXPIRED" + + // ErrCodeNotYetValid indicates current time < iat. + ErrCodeNotYetValid = "BADGE_NOT_YET_VALID" + + // ErrCodeIssuerUntrusted indicates iss is not in the trusted issuer list. + ErrCodeIssuerUntrusted = "BADGE_ISSUER_UNTRUSTED" + + // ErrCodeAudienceMismatch indicates the verifier is not in the aud claim. + ErrCodeAudienceMismatch = "BADGE_AUDIENCE_MISMATCH" + + // ErrCodeRevoked indicates the badge jti is on the revocation list. + ErrCodeRevoked = "BADGE_REVOKED" + + // ErrCodeClaimsInvalid indicates required claims are missing or malformed. + ErrCodeClaimsInvalid = "BADGE_CLAIMS_INVALID" + + // ErrCodeAgentDisabled indicates the agent sub is disabled. + ErrCodeAgentDisabled = "BADGE_AGENT_DISABLED" + + // ErrCodeRevocationCheckFailed indicates revocation check failed. + // RFC-002 v1.3 §7.5: Used when sync fails AND cache stale for levels 2+. + ErrCodeRevocationCheckFailed = "REVOCATION_CHECK_FAILED" +) +``` + + + +```go +const ( + // REVOCATION_CACHE_MAX_STALENESS is the default maximum age for cached data. + // RFC-002 v1.3 §7.5: 300 seconds (5 minutes) - revocation cache older than + // this is considered stale and triggers fail-closed for levels 2+. + REVOCATION_CACHE_MAX_STALENESS = 5 * time.Minute + + // DefaultStaleThreshold is an alias for backward compatibility. + // Deprecated: Use REVOCATION_CACHE_MAX_STALENESS instead. + DefaultStaleThreshold = REVOCATION_CACHE_MAX_STALENESS + + // StaleFailClosedMinLevel is the minimum trust level that enforces fail-closed + // on stale data. RFC-002 v1.3 §7.5: Levels 2+ MUST fail on stale cache. + StaleFailClosedMinLevel = 2 +) +``` + +DefaultCAURL is the default CapiscIO Registry URL. + +```go +const DefaultCAURL = "https://registry.capisc.io" +``` + +DefaultTTL is the default badge TTL per RFC\-002. + +```go +const DefaultTTL = 5 * time.Minute +``` + +## Variables + +Predefined sentinel errors for common cases. Use these with errors.Is\(\) for type\-safe error checking. + +```go +var ( + // ErrMalformed is returned when the JWS structure is invalid. + ErrMalformed = NewError(ErrCodeMalformed, "badge structure is invalid") + + // ErrSignatureInvalid is returned when signature verification fails. + ErrSignatureInvalid = NewError(ErrCodeSignatureInvalid, "signature verification failed") + + // ErrExpired is returned when the badge has expired. + ErrExpired = NewError(ErrCodeExpired, "badge has expired") + + // ErrNotYetValid is returned when the badge is not yet valid (iat in future). + ErrNotYetValid = NewError(ErrCodeNotYetValid, "badge is not yet valid") + + // ErrIssuerUntrusted is returned when the issuer is not trusted. + ErrIssuerUntrusted = NewError(ErrCodeIssuerUntrusted, "issuer is not trusted") + + // ErrAudienceMismatch is returned when verifier is not in audience. + ErrAudienceMismatch = NewError(ErrCodeAudienceMismatch, "verifier not in badge audience") + + // ErrRevoked is returned when the badge has been revoked. + ErrRevoked = NewError(ErrCodeRevoked, "badge has been revoked") + + // ErrClaimsInvalid is returned when required claims are missing or malformed. + ErrClaimsInvalid = NewError(ErrCodeClaimsInvalid, "required claims missing or malformed") + + // ErrAgentDisabled is returned when the agent has been disabled. + ErrAgentDisabled = NewError(ErrCodeAgentDisabled, "agent has been disabled") + + // ErrRevocationCheckFailed is returned when revocation check fails with stale cache. + // RFC-002 v1.3 §7.5: Used for fail-closed on stale cache for levels 2+. + ErrRevocationCheckFailed = NewError(ErrCodeRevocationCheckFailed, "revocation check failed") +) +``` + + +## func [GetErrorCode]() + +```go +func GetErrorCode(err error) string +``` +GetErrorCode extracts the error code from an Error, or returns empty string. ## func [SignBadge]() @@ -207,921 +384,23959 @@ func SignBadge(claims *Claims, privateKey crypto.PrivateKey) (string, error) SignBadge creates a signed JWS token from the given claims using the private key. It defaults to EdDSA \(Ed25519\) signing. + +## type [ChallengeResponse]() + +ChallengeResponse represents the server's challenge response. + +```go +type ChallengeResponse struct { + ChallengeID string `json:"challenge_id"` + Nonce string `json:"nonce"` + ExpiresAt time.Time `json:"expires_at"` + Aud string `json:"aud"` + HTU string `json:"htu"` + HTM string `json:"htm"` +} +``` + -## type [Claims]() +## type [Claims]() -Claims represents the JWT claims payload for a CapiscIO Trust Badge. It follows the structure defined in the Minimal Authority Stack plan. +Claims represents the JWT claims payload for a CapiscIO Trust Badge. See RFC\-002: Trust Badge Specification. ```go type Claims struct { - // Issuer is the entity that issued the badge (e.g., "https://registry.capisc.io"). + // JTI is the unique Badge ID (UUID v4). Used for revocation and audit. + JTI string `json:"jti"` + + // Issuer is the CA that signed the Badge (e.g., "https://registry.capisc.io"). Issuer string `json:"iss"` - // Subject is the unique identifier of the Agent (e.g., "did:capiscio:agent:12345"). + // Subject is the agent's DID. MUST be a valid did:web identifier. + // Format: did:web:registry.capisc.io:agents: Subject string `json:"sub"` + // Audience is the list of trust domains/services where Badge is valid. + // Optional. If present, verifiers MUST check their identity is included. + Audience []string `json:"aud,omitempty"` + // IssuedAt is the timestamp when the badge was issued (Unix timestamp). IssuedAt int64 `json:"iat"` // Expiry is the timestamp when the badge expires (Unix timestamp). Expiry int64 `json:"exp"` + // NotBefore is the timestamp before which the badge MUST NOT be accepted. + // Optional. Per RFC-002 §4.3.1. + NotBefore int64 `json:"nbf,omitempty"` + + // IAL is the Identity Assurance Level. REQUIRED per RFC-002 §4.3.2. + // "0" = Account-attested (IAL-0), "1" = Proof of Possession (IAL-1). + IAL string `json:"ial"` + // Key is the public key of the subject, embedded for offline verification. + // REQUIRED in production. MAY be omitted in non-production environments. Key *jose.JSONWebKey `json:"key,omitempty"` + // CNF is the confirmation claim per RFC 7800. + // When present, binds the badge to a specific key holder. + // Used for Proof of Possession (PoP) badges (RFC-002 §7.2.2, RFC-003). + CNF *ConfirmationClaim `json:"cnf,omitempty"` + + // PoPChallengeID is a reference to the PoP challenge used during issuance. + // Optional. Provides audit trail for PoP-issued badges (RFC-002 §4.3.3). + PoPChallengeID string `json:"pop_challenge_id,omitempty"` + + // AgentCardHash is the SHA-256 hash of the canonical AgentCard at issuance. + // Optional. Enables verifiers to detect AgentCard drift (RFC-002 §4.3.3). + AgentCardHash string `json:"agent_card_hash,omitempty"` + + // DIDDocHash is the SHA-256 hash of the DID Document at issuance. + // Optional. Enables verifiers to detect key rotation (RFC-002 §4.3.3). + DIDDocHash string `json:"did_doc_hash,omitempty"` + // VC contains the Verifiable Credential data. VC VerifiableCredential `json:"vc"` } ``` - -## type [CredentialSubject]() - -CredentialSubject contains the specific claims. + +### func \(\*Claims\) [AgentID]() ```go -type CredentialSubject struct { - // Domain is the security domain of the agent (e.g., "finance.internal"). - Domain string `json:"domain,omitempty"` - - // Level indicates the trust level (RFC-002 §5): "0"=SS, "1"=REG, "2"=DV, "3"=OV, "4"=EV. - Level string `json:"level,omitempty"` -} +func (c *Claims) AgentID() string ``` - -## type [Keeper]() +AgentID extracts the agent ID from the Subject DID. For did:web:registry.capisc.io:agents:my\-agent\-001, returns "my\-agent\-001". Returns empty string if the DID format is invalid. -Keeper manages the lifecycle of a Trust Badge file. + +### func \(\*Claims\) [AssuranceLevel]() ```go -type Keeper struct { - // contains filtered or unexported fields -} +func (c *Claims) AssuranceLevel() string ``` - -### func [NewKeeper]() +AssuranceLevel returns the identity assurance level of the badge. Per RFC\-002 §7.2.1: \- IAL\-0: Account\-attested bearer badge \- IAL\-1: Proof of Possession badge The IAL claim is authoritative; cnf is supporting evidence. + + +### func \(\*Claims\) [Domain]() ```go -func NewKeeper(config KeeperConfig) *Keeper +func (c *Claims) Domain() string ``` -NewKeeper creates a new Keeper. +Domain returns the domain from the VC credential subject. - -### func \(\*Keeper\) [CheckAndRenew]() + +### func \(\*Claims\) [ExpiresAt]() ```go -func (k *Keeper) CheckAndRenew() error +func (c *Claims) ExpiresAt() time.Time ``` -CheckAndRenew checks if the badge needs renewal and renews it if necessary. +ExpiresAt returns the expiry time as a time.Time. - -### func \(\*Keeper\) [Renew]() + +### func \(\*Claims\) [HasProofOfPossession]() ```go -func (k *Keeper) Renew() error +func (c *Claims) HasProofOfPossession() bool ``` -Renew generates a new badge and writes it to disk. +HasProofOfPossession returns true if this is a PoP\-issued badge. - -### func \(\*Keeper\) [Run]() + +### func \(\*Claims\) [IsExpired]() ```go -func (k *Keeper) Run(ctx context.Context) error +func (c *Claims) IsExpired() bool ``` -Run starts the keeper loop. - - -## type [KeeperConfig]() +IsExpired returns true if the badge has expired. -KeeperConfig holds configuration for the Badge Keeper. + +### func \(\*Claims\) [IsNotYetValid]() ```go -type KeeperConfig struct { - PrivateKey crypto.PrivateKey - Claims Claims - OutputFile string - Expiry time.Duration - RenewBefore time.Duration - CheckInterval time.Duration -} +func (c *Claims) IsNotYetValid() bool ``` - -## type [VerifiableCredential]() +IsNotYetValid returns true if the badge's iat is in the future. -VerifiableCredential represents the simplified VC object. + +### func \(\*Claims\) [IssuedAtTime]() ```go -type VerifiableCredential struct { - // Type is the JSON-LD type(s) of the credential. - Type []string `json:"type"` - - // CredentialSubject contains the claims about the subject. - CredentialSubject CredentialSubject `json:"credentialSubject"` -} +func (c *Claims) IssuedAtTime() time.Time ``` - -## type [Verifier]() +IssuedAtTime returns the issued\-at time as a time.Time. -Verifier validates TrustBadges. + +### func \(\*Claims\) [TrustLevel]() ```go -type Verifier struct { - // contains filtered or unexported fields -} +func (c *Claims) TrustLevel() string ``` - -### func [NewVerifier]() +TrustLevel returns the trust level from the VC credential subject. Returns "1", "2", or "3", or empty string if not set. + + +## type [Client]() + +Client is an HTTP client for requesting badges from a CA. ```go -func NewVerifier(reg registry.Registry) *Verifier +type Client struct { + CAURL string + APIKey string + HTTPClient *http.Client +} ``` -NewVerifier creates a new Badge Verifier. - - -### func \(\*Verifier\) [Verify]() + +### func [NewClient]() ```go -func (v *Verifier) Verify(ctx context.Context, token string) (*Claims, error) +func NewClient(caURL, apiKey string) *Client ``` -Verify checks the validity of a TrustBadge JWS token. +NewClient creates a new badge client. -# crypto + +### func \(\*Client\) [RequestBadge]() ```go -import "github.com/capiscio/capiscio-core/pkg/crypto" +func (c *Client) RequestBadge(ctx context.Context, opts RequestBadgeOptions) (*RequestBadgeResult, error) ``` -Package crypto provides cryptographic utilities for CapiscIO. +RequestBadge requests a new badge from the CA. -## Index + +## type [ClientError]() -- [func CreateCanonicalJSON\(card \*agentcard.AgentCard\) \(\[\]byte, error\)](<#CreateCanonicalJSON>) -- [type DefaultJWKSFetcher](<#DefaultJWKSFetcher>) - - [func NewDefaultJWKSFetcher\(\) \*DefaultJWKSFetcher](<#NewDefaultJWKSFetcher>) - - [func \(f \*DefaultJWKSFetcher\) Fetch\(ctx context.Context, url string\) \(\*jose.JSONWebKeySet, error\)](<#DefaultJWKSFetcher.Fetch>) - - [func \(f \*DefaultJWKSFetcher\) FlushCache\(\)](<#DefaultJWKSFetcher.FlushCache>) - - [func \(f \*DefaultJWKSFetcher\) SetTTL\(ttl time.Duration\)](<#DefaultJWKSFetcher.SetTTL>) -- [type JWKSFetcher](<#JWKSFetcher>) -- [type SignatureResult](<#SignatureResult>) -- [type SignatureVerificationResult](<#SignatureVerificationResult>) -- [type VerificationSummary](<#VerificationSummary>) -- [type Verifier](<#Verifier>) - - [func NewVerifier\(\) \*Verifier](<#NewVerifier>) - - [func NewVerifierWithFetcher\(fetcher JWKSFetcher\) \*Verifier](<#NewVerifierWithFetcher>) - - [func \(v \*Verifier\) VerifyAgentCardSignatures\(ctx context.Context, card \*agentcard.AgentCard\) \(\*SignatureVerificationResult, error\)](<#Verifier.VerifyAgentCardSignatures>) +ClientError represents an error from the badge client. +```go +type ClientError struct { + Code string + Message string +} +``` - -## func [CreateCanonicalJSON]() + +### func \(\*ClientError\) [Error]() ```go -func CreateCanonicalJSON(card *agentcard.AgentCard) ([]byte, error) +func (e *ClientError) Error() string ``` -CreateCanonicalJSON creates a canonical JSON representation of the Agent Card for signature verification. It removes the "signatures" field and ensures keys are sorted \(which encoding/json does by default\). - -## type [DefaultJWKSFetcher]() -DefaultJWKSFetcher is the default implementation of JWKSFetcher. + +### func \(\*ClientError\) [IsAuthError]() ```go -type DefaultJWKSFetcher struct { - // contains filtered or unexported fields -} +func (e *ClientError) IsAuthError() bool ``` - -### func [NewDefaultJWKSFetcher]() +IsAuthError returns true if this is an authentication error. + + +### func \(\*ClientError\) [IsNotFoundError]() ```go -func NewDefaultJWKSFetcher() *DefaultJWKSFetcher +func (e *ClientError) IsNotFoundError() bool ``` -NewDefaultJWKSFetcher creates a new fetcher with a default HTTP client and 1 hour cache TTL. +IsNotFoundError returns true if the agent was not found. - -### func \(\*DefaultJWKSFetcher\) [Fetch]() + +## type [ConfirmationClaim]() + +ConfirmationClaim represents the cnf claim per RFC 7800. Used to bind a badge to a specific key for Proof of Possession. ```go -func (f *DefaultJWKSFetcher) Fetch(ctx context.Context, url string) (*jose.JSONWebKeySet, error) +type ConfirmationClaim struct { + // KID is the key ID referencing the key in the DID Document. + // This is the primary mechanism for PoP badges. + KID string `json:"kid,omitempty"` + + // JWK is the full JWK of the confirmation key (alternative to kid). + JWK *jose.JSONWebKey `json:"jwk,omitempty"` + + // JKT is the JWK thumbprint (SHA-256) of the confirmation key. + JKT string `json:"jkt,omitempty"` +} ``` -Fetch retrieves the JWKS from the specified URL, using cache if available. + +## type [CredentialSubject]() - -### func \(\*DefaultJWKSFetcher\) [FlushCache]() +CredentialSubject contains the specific claims. ```go -func (f *DefaultJWKSFetcher) FlushCache() +type CredentialSubject struct { + // Domain is the agent's home domain. + // MUST be validated according to the trust level's requirements. + Domain string `json:"domain,omitempty"` + + // Level indicates the trust level: "1" (DV), "2" (OV), or "3" (EV). + Level string `json:"level,omitempty"` +} ``` -FlushCache clears all cached JWKS entries. + +## type [DVClient]() - -### func \(\*DefaultJWKSFetcher\) [SetTTL]() +DVClient is an HTTP client for Domain Validated badge orders \(RFC\-002 v1.2\). ```go -func (f *DefaultJWKSFetcher) SetTTL(ttl time.Duration) +type DVClient struct { + CAURL string + HTTPClient *http.Client +} ``` -SetTTL configures the cache time\-to\-live. + +### func [NewDVClient]() - -## type [JWKSFetcher]() +```go +func NewDVClient(caURL string) *DVClient +``` -JWKSFetcher handles fetching and caching of JSON Web Key Sets. +NewDVClient creates a new DV client with a default HTTP client. + + +### func [NewDVClientWithHTTPClient]() ```go -type JWKSFetcher interface { - Fetch(ctx context.Context, url string) (*jose.JSONWebKeySet, error) -} +func NewDVClientWithHTTPClient(caURL string, httpClient *http.Client) *DVClient ``` - -## type [SignatureResult]() +NewDVClientWithHTTPClient creates a new DV client with a custom HTTP client. -SignatureResult holds the details of a single signature verification. + +### func \(\*DVClient\) [CreateOrder]() ```go -type SignatureResult struct { - Index int - Valid bool - Algorithm string - KeyID string - Issuer string - JWKSUri string - Error string -} +func (c *DVClient) CreateOrder(ctx context.Context, domain, challengeType string, jwk *jose.JSONWebKey) (*DVOrder, error) ``` - -## type [SignatureVerificationResult]() +CreateOrder creates a new DV badge order. -SignatureVerificationResult contains the result of verifying all signatures. + +### func \(\*DVClient\) [FinalizeOrder]() ```go -type SignatureVerificationResult struct { - Valid bool - Signatures []SignatureResult - Summary VerificationSummary -} +func (c *DVClient) FinalizeOrder(ctx context.Context, orderID string) (*DVGrant, error) ``` - -## type [VerificationSummary]() +FinalizeOrder finalizes a DV badge order and receives a grant. -VerificationSummary summarizes the results of all signature verifications. + +### func \(\*DVClient\) [GetOrder]() ```go -type VerificationSummary struct { - Total int - Valid int - Failed int - Errors []string -} +func (c *DVClient) GetOrder(ctx context.Context, orderID string) (*DVOrder, error) ``` - -## type [Verifier]() +GetOrder gets the status of a DV badge order. -Verifier handles Agent Card signature verification. + +## type [DVGrant]() + +DVGrant represents a DV grant JWT. ```go -type Verifier struct { - // contains filtered or unexported fields +type DVGrant struct { + Grant string + ExpiresAt time.Time } ``` - -### func [NewVerifier]() + +## type [DVOrder]() + +DVOrder represents a DV badge order. ```go -func NewVerifier() *Verifier +type DVOrder struct { + ID string + Domain string + ChallengeType string + ChallengeToken string + Status string + ValidationURL string + DNSRecord string + ExpiresAt time.Time + FinalizedAt *time.Time +} ``` -NewVerifier creates a new Verifier with the default JWKS fetcher. + +## type [Error]() - -### func [NewVerifierWithFetcher]() +Error represents a badge verification error with an RFC\-002 error code. ```go -func NewVerifierWithFetcher(fetcher JWKSFetcher) *Verifier -``` +type Error struct { + // Code is one of the BADGE_* error codes. + Code string -NewVerifierWithFetcher creates a new Verifier with a custom JWKS fetcher. + // Message is a human-readable description. + Message string - -### func \(\*Verifier\) [VerifyAgentCardSignatures]() + // Cause is the underlying error, if any. + Cause error +} +``` + + +### func [AsError]() ```go -func (v *Verifier) VerifyAgentCardSignatures(ctx context.Context, card *agentcard.AgentCard) (*SignatureVerificationResult, error) +func AsError(err error) (*Error, bool) ``` -VerifyAgentCardSignatures verifies all signatures in an Agent Card. +AsError checks if err is an Error and returns it if so. -# gateway + +### func [NewError]() ```go -import "github.com/capiscio/capiscio-core/pkg/gateway" +func NewError(code, message string) *Error ``` -Package gateway provides the HTTP middleware for the CapiscIO Security Sidecar. +NewError creates a new Error with the given code and message. -## Index + +### func [WrapError]() -- [func ExtractBadge\(r \*http.Request\) string](<#ExtractBadge>) -- [func NewAuthMiddleware\(verifier \*badge.Verifier, next http.Handler\) http.Handler](<#NewAuthMiddleware>) +```go +func WrapError(code, message string, cause error) *Error +``` +WrapError creates a new Error that wraps an underlying error. - -## func [ExtractBadge]() + +### func \(\*Error\) [Error]() ```go -func ExtractBadge(r *http.Request) string +func (e *Error) Error() string ``` -ExtractBadge retrieves the badge from headers. +Error implements the error interface. - -## func [NewAuthMiddleware]() + +### func \(\*Error\) [Is]() ```go -func NewAuthMiddleware(verifier *badge.Verifier, next http.Handler) http.Handler +func (e *Error) Is(target error) bool ``` -NewAuthMiddleware creates a middleware that enforces Badge validity. +Is checks if the error matches a target error code. -# protocol + +### func \(\*Error\) [Unwrap]() ```go -import "github.com/capiscio/capiscio-core/pkg/protocol" +func (e *Error) Unwrap() error ``` -Package protocol defines the interfaces and implementations for communicating with A2A agents. +Unwrap returns the underlying cause for errors.Is/errors.As. + + +## type [Keeper]() + +Keeper manages the lifecycle of a Trust Badge file. + +```go +type Keeper struct { + // contains filtered or unexported fields +} +``` + + +### func [NewKeeper]() + +```go +func NewKeeper(config KeeperConfig) (*Keeper, error) +``` + +NewKeeper creates a new Keeper. Returns an error if an unsupported mode is specified. + + +### func \(\*Keeper\) [CheckAndRenew]() + +```go +func (k *Keeper) CheckAndRenew() error +``` + +CheckAndRenew checks if the badge needs renewal and renews it if necessary. This is the legacy method for backward compatibility. + + +### func \(\*Keeper\) [Renew]() + +```go +func (k *Keeper) Renew() error +``` + +Renew generates a new badge and writes it to disk. This is the legacy method for backward compatibility. + + +### func \(\*Keeper\) [Run]() + +```go +func (k *Keeper) Run(ctx context.Context) error +``` + +Run starts the keeper loop. + + +### func \(\*Keeper\) [RunWithEvents]() + +```go +func (k *Keeper) RunWithEvents(ctx context.Context, events chan<- KeeperEvent) error +``` + +RunWithEvents starts the keeper loop and sends events to the provided channel. The channel is closed when the keeper stops. + + +## type [KeeperConfig]() + +KeeperConfig holds configuration for the Badge Keeper. + +```go +type KeeperConfig struct { + // Mode: self-sign, ca (deprecated), or pop (recommended) + Mode KeeperMode + + // Common settings + OutputFile string + Expiry time.Duration + RenewBefore time.Duration + CheckInterval time.Duration + Domain string + TrustLevel string + + // Self-sign mode settings + PrivateKey crypto.PrivateKey + Claims Claims + + // CA mode settings (IAL-0, deprecated) + CAURL string + APIKey string + AgentID string + + // PoP mode settings (IAL-1, recommended) + // AgentDID is the DID of the agent (e.g., did:key:z6Mk...) + AgentDID string + // Audience is the optional audience restrictions for the badge + Audience []string +} +``` + + +## type [KeeperEvent]() + +KeeperEvent represents an event emitted by the badge keeper. + +```go +type KeeperEvent struct { + Type KeeperEventType + BadgeJTI string + Subject string + TrustLevel string + ExpiresAt time.Time + Error string + ErrorCode string + Timestamp time.Time + Token string // The badge token (optional, for renewed events) +} +``` + + +## type [KeeperEventType]() + +KeeperEventType defines the type of event emitted by the keeper. + +```go +type KeeperEventType string +``` + +Keeper event types. + +```go +const ( + // KeeperEventStarted indicates the keeper has started. + KeeperEventStarted KeeperEventType = "started" + // KeeperEventRenewed indicates a badge was renewed. + KeeperEventRenewed KeeperEventType = "renewed" + // KeeperEventError indicates an error occurred. + KeeperEventError KeeperEventType = "error" + // KeeperEventStopped indicates the keeper has stopped. + KeeperEventStopped KeeperEventType = "stopped" +) +``` + + +## type [KeeperMode]() + +KeeperMode defines the mode of operation for the keeper. + +```go +type KeeperMode string +``` + + + +```go +const ( + // KeeperModeSelfSign generates self-signed badges locally. + KeeperModeSelfSign KeeperMode = "self-sign" + // KeeperModeCA requests badges from a Certificate Authority (IAL-0, deprecated). + // Deprecated: Use KeeperModePoP for production - IAL-0 lacks cryptographic key binding. + KeeperModeCA KeeperMode = "ca" + // KeeperModePoP requests badges using Proof of Possession (RFC-003 IAL-1). + // This is the recommended mode for production as it provides cryptographic key binding. + KeeperModePoP KeeperMode = "pop" +) +``` + + +## type [PoPClient]() + +PoPClient is an HTTP client for requesting badges using Proof of Possession \(RFC\-003\). This provides IAL\-1 badge issuance with cryptographic key binding. + +```go +type PoPClient struct { + CAURL string + APIKey string + HTTPClient *http.Client +} +``` + + +### func [NewPoPClient]() + +```go +func NewPoPClient(caURL, apiKey string) *PoPClient +``` + +NewPoPClient creates a new PoP badge client with a default HTTP client. The default HTTP client uses a 30\-second timeout. + + +### func [NewPoPClientWithHTTPClient]() + +```go +func NewPoPClientWithHTTPClient(caURL, apiKey string, httpClient *http.Client) *PoPClient +``` + +NewPoPClientWithHTTPClient creates a new PoP badge client with a custom HTTP client. If httpClient is nil, a default client with 30\-second timeout is used. + + +### func \(\*PoPClient\) [RequestPoPBadge]() + +```go +func (c *PoPClient) RequestPoPBadge(ctx context.Context, opts RequestPoPBadgeOptions) (*RequestPoPBadgeResult, error) +``` + +RequestPoPBadge requests a badge using the PoP protocol \(RFC\-003 IAL\-1\). This provides cryptographic proof that the requester controls the DID's private key. + + +## type [PoPProofClaims]() + +PoPProofClaims represents the claims in a PoP proof JWS. + +```go +type PoPProofClaims struct { + CID string `json:"cid"` // Challenge ID + Nonce string `json:"nonce"` // Server nonce + Sub string `json:"sub"` // Subject (DID) + Aud string `json:"aud"` // Audience (registry) + HTU string `json:"htu"` // HTTP Target URI + HTM string `json:"htm"` // HTTP Method + IAT int64 `json:"iat"` // Issued at + Exp int64 `json:"exp"` // Expiration + JTI string `json:"jti"` // Proof JTI (unique) +} +``` + + +## type [RenewalResult]() + +RenewalResult contains details about a renewed badge. + +```go +type RenewalResult struct { + JTI string + Subject string + TrustLevel string + ExpiresAt time.Time + Token string +} +``` + + +## type [RequestBadgeOptions]() + +RequestBadgeOptions contains options for badge request. + +```go +type RequestBadgeOptions struct { + AgentID string + Domain string + TTL time.Duration + TrustLevel string + Audience []string +} +``` + + +## type [RequestBadgeResult]() + +RequestBadgeResult contains the result of a badge request. + +```go +type RequestBadgeResult struct { + Token string + JTI string + Subject string + TrustLevel string + ExpiresAt time.Time +} +``` + + +## type [RequestPoPBadgeOptions]() + +RequestPoPBadgeOptions contains options for PoP badge request. + +```go +type RequestPoPBadgeOptions struct { + // AgentDID is the DID of the agent (e.g., did:key:z6Mk... or did:web:...) + AgentDID string + + // PrivateKey is the agent's private key for signing the PoP proof + PrivateKey crypto.PrivateKey + + // TTL is the requested badge TTL (optional, default 5 min) + TTL time.Duration + + // Audience is the optional audience restrictions + Audience []string +} +``` + + +## type [RequestPoPBadgeResult]() + +RequestPoPBadgeResult contains the result of a PoP badge request. + +```go +type RequestPoPBadgeResult struct { + Token string + JTI string + Subject string + TrustLevel string + AssuranceLevel string // "IAL-1" for PoP badges + ExpiresAt time.Time + CNF map[string]interface{} // Confirmation claim with key binding +} +``` + + +## type [RevocationCache]() + +RevocationCache provides access to cached revocation data. + +```go +type RevocationCache interface { + // IsRevoked checks if a badge jti is in the revocation cache. + IsRevoked(jti string) bool + + // IsStale returns true if the cache is older than the threshold. + IsStale(threshold time.Duration) bool +} +``` + + +## type [VerifiableCredential]() + +VerifiableCredential represents the simplified VC object. + +```go +type VerifiableCredential struct { + // Type is the JSON-LD type(s) of the credential. + // MUST include "VerifiableCredential" and "AgentIdentity". + Type []string `json:"type"` + + // CredentialSubject contains the claims about the subject. + CredentialSubject CredentialSubject `json:"credentialSubject"` +} +``` + + +## type [Verifier]() + +Verifier validates TrustBadges per RFC\-002. + +```go +type Verifier struct { + // contains filtered or unexported fields +} +``` + + +### func [NewVerifier]() + +```go +func NewVerifier(reg registry.Registry) *Verifier +``` + +NewVerifier creates a new Badge Verifier. + + +### func \(\*Verifier\) [Verify]() + +```go +func (v *Verifier) Verify(ctx context.Context, token string) (*Claims, error) +``` + +Verify checks the validity of a TrustBadge JWS token using default options. For more control, use VerifyWithOptions. + + +### func \(\*Verifier\) [VerifyWithOptions]() + +```go +func (v *Verifier) VerifyWithOptions(ctx context.Context, token string, opts VerifyOptions) (*VerifyResult, error) +``` + +VerifyWithOptions performs badge verification with the specified options. Implements RFC\-002 §8.1 verification flow. + +For Level 0 self\-signed badges \(did:key issuer\): + +- Public key is extracted from the did:key identifier +- Revocation check is skipped \(self\-signed badges not in registry\) +- Agent status check is skipped \(no registry\) +- iss must equal sub \(self\-assertion only\) + + +## type [VerifyMode]() + +VerifyMode determines how verification is performed. + +```go +type VerifyMode int +``` + + + +```go +const ( + // VerifyModeOnline performs real-time checks against the registry. + // This includes revocation checks and agent status checks. + VerifyModeOnline VerifyMode = iota + + // VerifyModeOffline uses only local trust store and revocation cache. + // Does not make network requests. + VerifyModeOffline + + // VerifyModeHybrid uses online checks when available, falls back to cache. + VerifyModeHybrid +) +``` + + +## type [VerifyOptions]() + +VerifyOptions configures badge verification behavior. + +```go +type VerifyOptions struct { + // Mode determines online/offline verification behavior. + Mode VerifyMode + + // TrustedIssuers is a list of allowed issuer DIDs (did:web or did:key). + // If empty, all issuers are accepted (not recommended for production). + // For Level 0 self-signed badges, the did:key issuer must be in this list + // or AcceptSelfSigned must be true. + TrustedIssuers []string + + // AcceptSelfSigned allows Level 0 self-signed badges (did:key issuer). + // WARNING: Production verifiers SHOULD NOT accept self-signed badges + // unless explicitly required for specific use cases. + // Default: false (reject self-signed badges) + AcceptSelfSigned bool + + // Audience is the verifier's identity for audience validation. + // If set and badge has aud claim, verifier must be in audience. + Audience string + + // SkipRevocationCheck disables revocation checking (for testing only). + SkipRevocationCheck bool + + // SkipAgentStatusCheck disables agent status checking (for testing only). + SkipAgentStatusCheck bool + + // RevocationCache provides cached revocations for offline mode. + RevocationCache RevocationCache + + // StaleThreshold is the maximum age of cached data before it's considered stale. + // RFC-002 v1.3: For IAL-2+ badges, stale cache causes verification to fail. + // Default: 24 hours if not set. + StaleThreshold time.Duration + + // FailOpen allows verification to succeed even when staleness checks fail. + // WARNING: This is NOT recommended for production. + // RFC-002 v1.3 requires fail-closed behavior by default. + // Default: false (fail-closed) + FailOpen bool + + // Now overrides the current time (for testing). + Now func() time.Time +} +``` + + +## type [VerifyResult]() + +VerifyResult contains the result of badge verification. + +```go +type VerifyResult struct { + // Claims contains the verified badge claims. + Claims *Claims + + // Mode indicates which verification mode was used. + Mode VerifyMode + + // Warnings contains non-fatal issues encountered. + Warnings []string +} +``` + +# crypto + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/crypto" +``` + +Package crypto provides cryptographic utilities for CapiscIO. ## Index -- [type Client](<#Client>) -- [type HTTPClient](<#HTTPClient>) - - [func NewHTTPClient\(url string\) \*HTTPClient](<#NewHTTPClient>) - - [func \(c \*HTTPClient\) Close\(\) error](<#HTTPClient.Close>) - - [func \(c \*HTTPClient\) Ping\(ctx context.Context\) \(time.Duration, error\)](<#HTTPClient.Ping>) -- [type JSONRPCClient](<#JSONRPCClient>) - - [func NewJSONRPCClient\(url string\) \*JSONRPCClient](<#NewJSONRPCClient>) - - [func \(c \*JSONRPCClient\) Close\(\) error](<#JSONRPCClient.Close>) - - [func \(c \*JSONRPCClient\) Ping\(ctx context.Context\) \(time.Duration, error\)](<#JSONRPCClient.Ping>) +- [func CreateCanonicalJSON\(card \*agentcard.AgentCard\) \(\[\]byte, error\)](<#CreateCanonicalJSON>) +- [type DefaultJWKSFetcher](<#DefaultJWKSFetcher>) + - [func NewDefaultJWKSFetcher\(\) \*DefaultJWKSFetcher](<#NewDefaultJWKSFetcher>) + - [func \(f \*DefaultJWKSFetcher\) Fetch\(ctx context.Context, url string\) \(\*jose.JSONWebKeySet, error\)](<#DefaultJWKSFetcher.Fetch>) + - [func \(f \*DefaultJWKSFetcher\) FlushCache\(\)](<#DefaultJWKSFetcher.FlushCache>) + - [func \(f \*DefaultJWKSFetcher\) SetTTL\(ttl time.Duration\)](<#DefaultJWKSFetcher.SetTTL>) +- [type JWKSFetcher](<#JWKSFetcher>) +- [type SignatureResult](<#SignatureResult>) +- [type SignatureVerificationResult](<#SignatureVerificationResult>) +- [type VerificationSummary](<#VerificationSummary>) +- [type Verifier](<#Verifier>) + - [func NewVerifier\(\) \*Verifier](<#NewVerifier>) + - [func NewVerifierWithFetcher\(fetcher JWKSFetcher\) \*Verifier](<#NewVerifierWithFetcher>) + - [func \(v \*Verifier\) VerifyAgentCardSignatures\(ctx context.Context, card \*agentcard.AgentCard\) \(\*SignatureVerificationResult, error\)](<#Verifier.VerifyAgentCardSignatures>) + + + +## func [CreateCanonicalJSON]() + +```go +func CreateCanonicalJSON(card *agentcard.AgentCard) ([]byte, error) +``` + +CreateCanonicalJSON creates a canonical JSON representation of the Agent Card for signature verification. It removes the "signatures" field and ensures keys are sorted \(which encoding/json does by default\). + + +## type [DefaultJWKSFetcher]() + +DefaultJWKSFetcher is the default implementation of JWKSFetcher. + +```go +type DefaultJWKSFetcher struct { + // contains filtered or unexported fields +} +``` + + +### func [NewDefaultJWKSFetcher]() + +```go +func NewDefaultJWKSFetcher() *DefaultJWKSFetcher +``` + +NewDefaultJWKSFetcher creates a new fetcher with a default HTTP client and 1 hour cache TTL. + + +### func \(\*DefaultJWKSFetcher\) [Fetch]() + +```go +func (f *DefaultJWKSFetcher) Fetch(ctx context.Context, url string) (*jose.JSONWebKeySet, error) +``` + +Fetch retrieves the JWKS from the specified URL, using cache if available. + + +### func \(\*DefaultJWKSFetcher\) [FlushCache]() + +```go +func (f *DefaultJWKSFetcher) FlushCache() +``` + +FlushCache clears all cached JWKS entries. + + +### func \(\*DefaultJWKSFetcher\) [SetTTL]() + +```go +func (f *DefaultJWKSFetcher) SetTTL(ttl time.Duration) +``` + +SetTTL configures the cache time\-to\-live. + + +## type [JWKSFetcher]() + +JWKSFetcher handles fetching and caching of JSON Web Key Sets. + +```go +type JWKSFetcher interface { + Fetch(ctx context.Context, url string) (*jose.JSONWebKeySet, error) +} +``` + + +## type [SignatureResult]() + +SignatureResult holds the details of a single signature verification. + +```go +type SignatureResult struct { + Index int + Valid bool + Algorithm string + KeyID string + Issuer string + JWKSUri string + Error string +} +``` + + +## type [SignatureVerificationResult]() + +SignatureVerificationResult contains the result of verifying all signatures. + +```go +type SignatureVerificationResult struct { + Valid bool + Signatures []SignatureResult + Summary VerificationSummary +} +``` + + +## type [VerificationSummary]() + +VerificationSummary summarizes the results of all signature verifications. + +```go +type VerificationSummary struct { + Total int + Valid int + Failed int + Errors []string +} +``` + + +## type [Verifier]() + +Verifier handles Agent Card signature verification. + +```go +type Verifier struct { + // contains filtered or unexported fields +} +``` + + +### func [NewVerifier]() + +```go +func NewVerifier() *Verifier +``` + +NewVerifier creates a new Verifier with the default JWKS fetcher. + + +### func [NewVerifierWithFetcher]() + +```go +func NewVerifierWithFetcher(fetcher JWKSFetcher) *Verifier +``` + +NewVerifierWithFetcher creates a new Verifier with a custom JWKS fetcher. + + +### func \(\*Verifier\) [VerifyAgentCardSignatures]() + +```go +func (v *Verifier) VerifyAgentCardSignatures(ctx context.Context, card *agentcard.AgentCard) (*SignatureVerificationResult, error) +``` + +VerifyAgentCardSignatures verifies all signatures in an Agent Card. + +# did + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/did" +``` + +Package did provides utilities for parsing and working with DID identifiers. Supports did:web \(RFC\-002 §6.1\) and did:key \(RFC\-002 §6.6\) methods. See RFC\-002: Trust Badge Specification v1.1. + +## Index + +- [Constants](<#constants>) +- [Variables](<#variables>) +- [func NewAgentDID\(domain, agentID string\) string](<#NewAgentDID>) +- [func NewCapiscIOAgentDID\(agentID string\) string](<#NewCapiscIOAgentDID>) +- [func NewKeyDID\(publicKey \[\]byte\) string](<#NewKeyDID>) +- [func PublicKeyFromKeyDID\(didStr string\) \(ed25519.PublicKey, error\)](<#PublicKeyFromKeyDID>) +- [type DID](<#DID>) + - [func Parse\(did string\) \(\*DID, error\)](<#Parse>) + - [func \(d \*DID\) DocumentURL\(\) string](<#DID.DocumentURL>) + - [func \(d \*DID\) GetPublicKey\(\) ed25519.PublicKey](<#DID.GetPublicKey>) + - [func \(d \*DID\) IsAgentDID\(\) bool](<#DID.IsAgentDID>) + - [func \(d \*DID\) IsKeyDID\(\) bool](<#DID.IsKeyDID>) + - [func \(d \*DID\) IsWebDID\(\) bool](<#DID.IsWebDID>) + - [func \(d \*DID\) String\(\) string](<#DID.String>) + + +## Constants + +Multicodec constants for did:key + +```go +const ( + // Ed25519MulticodecPrefix is the multicodec prefix for Ed25519 public keys (0xed01) + Ed25519MulticodecPrefix = 0xed01 + + // Ed25519PublicKeySize is the size of an Ed25519 public key in bytes + Ed25519PublicKeySize = 32 +) +``` + +DefaultDomain is the default domain for CapiscIO\-hosted agents. + +```go +const DefaultDomain = "registry.capisc.io" +``` + +## Variables + +Common errors returned by this package. + +```go +var ( + ErrInvalidDID = errors.New("invalid DID format") + ErrUnsupportedMethod = errors.New("unsupported DID method (only did:web and did:key supported)") + ErrMissingAgentID = errors.New("missing agent ID in DID") + ErrInvalidKeyDID = errors.New("invalid did:key format") + ErrUnsupportedKeyType = errors.New("unsupported key type in did:key (only Ed25519 supported)") +) +``` + + +## func [NewAgentDID]() + +```go +func NewAgentDID(domain, agentID string) string +``` + +NewAgentDID constructs a did:web identifier for an agent. + +Parameters: + +- domain: The domain hosting the agent \(e.g., "registry.capisc.io"\) +- agentID: The unique agent identifier \(e.g., "my\-agent\-001"\) + +Returns: did:web:\:agents:\ + + +## func [NewCapiscIOAgentDID]() + +```go +func NewCapiscIOAgentDID(agentID string) string +``` + +NewCapiscIOAgentDID constructs a did:web for an agent on the CapiscIO registry. Shorthand for NewAgentDID\(DefaultDomain, agentID\). + + +## func [NewKeyDID]() + +```go +func NewKeyDID(publicKey []byte) string +``` + +NewKeyDID constructs a did:key identifier from an Ed25519 public key. Format: did:key:z\ + +Parameters: + +- publicKey: Ed25519 public key \(32 bytes\) + +Returns: did:key:z6Mk... formatted DID string + + +## func [PublicKeyFromKeyDID]() + +```go +func PublicKeyFromKeyDID(didStr string) (ed25519.PublicKey, error) +``` + +PublicKeyFromKeyDID extracts the Ed25519 public key from a did:key identifier. Returns the 32\-byte public key or an error if the DID is invalid. + + +## type [DID]() + +DID represents a parsed DID identifier. Supports both did:web and did:key methods. + +For did:web: did:web:\:agents:\ For did:key: did:key:z\ + +```go +type DID struct { + // Method is the DID method ("web" or "key"). + Method string + + // Domain is the domain hosting the DID Document (did:web only). + Domain string + + // Path segments after the domain (did:web only, e.g., ["agents", "my-agent-001"]). + PathSegments []string + + // AgentID is the agent identifier (did:web only, extracted from path). + AgentID string + + // PublicKey is the Ed25519 public key (did:key only, 32 bytes). + PublicKey []byte + + // Raw is the original DID string. + Raw string +} +``` + + +### func [Parse]() + +```go +func Parse(did string) (*DID, error) +``` + +Parse parses a DID identifier into its components. Supports both did:web and did:key methods. + +Returns ErrInvalidDID if the format is invalid. Returns ErrUnsupportedMethod if the method is not "web" or "key". + +Examples: + +- did:web:registry.capisc.io:agents:my\-agent\-001 +- did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK + + +### func \(\*DID\) [DocumentURL]() + +```go +func (d *DID) DocumentURL() string +``` + +DocumentURL returns the HTTPS URL for the DID Document per did:web spec. did:web:registry.capisc.io:agents:my\-agent\-001 + +``` +→ https://registry.capisc.io/agents/my-agent-001/did.json +``` + +Returns empty string for did:key \(no remote document\). Uses HTTP when the hostname is "localhost" or "127.0.0.1", HTTPS otherwise. + + +### func \(\*DID\) [GetPublicKey]() + +```go +func (d *DID) GetPublicKey() ed25519.PublicKey +``` + +GetPublicKey returns the Ed25519 public key for did:key identifiers. Returns nil for did:web identifiers. + + +### func \(\*DID\) [IsAgentDID]() + +```go +func (d *DID) IsAgentDID() bool +``` + +IsAgentDID returns true if the DID follows the CapiscIO agent DID pattern. Pattern: did:web:\:agents:\ + + +### func \(\*DID\) [IsKeyDID]() + +```go +func (d *DID) IsKeyDID() bool +``` + +IsKeyDID returns true if this is a did:key identifier. + + +### func \(\*DID\) [IsWebDID]() + +```go +func (d *DID) IsWebDID() bool +``` + +IsWebDID returns true if this is a did:web identifier. + + +### func \(\*DID\) [String]() + +```go +func (d *DID) String() string +``` + +String returns the canonical DID string. + +# gateway + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/gateway" +``` + +Package gateway provides the HTTP middleware for the CapiscIO Security Sidecar. + +## Index + +- [func ExtractBadge\(r \*http.Request\) string](<#ExtractBadge>) +- [func NewAuthMiddleware\(verifier \*badge.Verifier, next http.Handler\) http.Handler](<#NewAuthMiddleware>) +- [func NewPolicyMiddleware\(verifier \*badge.Verifier, config PEPConfig, next http.Handler, callbacks ...PolicyEventCallback\) http.Handler](<#NewPolicyMiddleware>) +- [type PEPConfig](<#PEPConfig>) +- [type PolicyEvent](<#PolicyEvent>) +- [type PolicyEventCallback](<#PolicyEventCallback>) + + + +## func [ExtractBadge]() + +```go +func ExtractBadge(r *http.Request) string +``` + +ExtractBadge retrieves the badge from headers. + + +## func [NewAuthMiddleware]() + +```go +func NewAuthMiddleware(verifier *badge.Verifier, next http.Handler) http.Handler +``` + +NewAuthMiddleware creates a middleware that enforces Badge validity. Deprecated: Use NewPolicyMiddleware for RFC\-005 PDP integration. + + +## func [NewPolicyMiddleware]() + +```go +func NewPolicyMiddleware(verifier *badge.Verifier, config PEPConfig, next http.Handler, callbacks ...PolicyEventCallback) http.Handler +``` + +NewPolicyMiddleware creates a full PEP middleware \(RFC\-005\). When PEPConfig.PDPClient is nil, operates in badge\-only mode \(identical to NewAuthMiddleware\). + + +## type [PEPConfig]() + +PEPConfig configures the Policy Enforcement Point middleware \(RFC\-005\). + +```go +type PEPConfig struct { + PDPClient pip.PDPClient // nil = badge-only mode (skip PDP) + EnforcementMode pip.EnforcementMode // default EMObserve + ObligationReg *pip.ObligationRegistry // nil = no obligation handling + DecisionCache pip.DecisionCache // nil = no caching + BreakGlassKey crypto.PublicKey // nil = break-glass disabled + PEPID string // PEP instance identifier + Workspace string // workspace/tenant identifier + Logger *slog.Logger // nil = slog.Default() +} +``` + + +## type [PolicyEvent]() + +PolicyEvent captures telemetry for a policy enforcement decision. + +```go +type PolicyEvent struct { + Decision string + DecisionID string + Override bool + OverrideJTI string + CacheHit bool + PDPLatencyMs int64 + Obligations []string + ErrorCode string +} +``` + + +## type [PolicyEventCallback]() + +PolicyEventCallback is invoked synchronously after each policy enforcement with the event data. Implementations MUST return quickly and avoid long\-running or blocking operations. + +```go +type PolicyEventCallback func(event PolicyEvent, req *pip.DecisionRequest) +``` + +# mcp + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/mcp" +``` + +Package mcp implements MCP security services for tool authority \(RFC\-006\) and server identity verification \(RFC\-007\). + +This package provides: + +- Tool access evaluation with trust badge verification +- Evidence emission for audit trails +- Server identity verification with did:web origin binding + +Usage as library: + +``` +import "github.com/capiscio/capiscio-core/pkg/mcp" + +service := mcp.NewService(mcp.Dependencies{...}) +result, err := service.EvaluateToolAccess(ctx, req) +``` + +The package also provides gRPC service handlers that can be registered with a gRPC server: + +``` +pb.RegisterMCPServiceServer(grpcServer, service) +``` + +Package mcp provides evidence storage implementations for RFC\-006. + +## Index + +- [Constants](<#constants>) +- [Variables](<#variables>) +- [func CheckVersionCompatibility\(clientVersion string\) \(bool, string\)](<#CheckVersionCompatibility>) +- [func CreatePoPRequest\(\) \(\*pop.MCPPoPRequest, error\)](<#CreatePoPRequest>) +- [func CreatePoPResponse\(clientNonce string, privateKey ed25519.PrivateKey, keyID string\) \(\*pop.MCPPoPResponse, error\)](<#CreatePoPResponse>) +- [func ParsePoPFromMeta\(meta map\[string\]interface\{\}\) \(\*pop.MCPPoPRequest, \*pop.MCPPoPResponse\)](<#ParsePoPFromMeta>) +- [type AuthLevel](<#AuthLevel>) + - [func \(a AuthLevel\) String\(\) string](<#AuthLevel.String>) +- [type CallerCredential](<#CallerCredential>) + - [func NewAPIKeyCredential\(apiKey string\) CallerCredential](<#NewAPIKeyCredential>) + - [func NewAnonymousCredential\(\) CallerCredential](<#NewAnonymousCredential>) + - [func NewBadgeCredential\(badgeJWS string\) CallerCredential](<#NewBadgeCredential>) + - [func \(c CallerCredential\) GetAuthLevel\(\) AuthLevel](<#CallerCredential.GetAuthLevel>) +- [type Decision](<#Decision>) + - [func \(d Decision\) String\(\) string](<#Decision.String>) +- [type DenyReason](<#DenyReason>) + - [func ErrorToDenyReason\(err error\) DenyReason](<#ErrorToDenyReason>) + - [func \(r DenyReason\) String\(\) string](<#DenyReason.String>) +- [type Dependencies](<#Dependencies>) +- [type EvaluateConfig](<#EvaluateConfig>) +- [type EvaluateResult](<#EvaluateResult>) +- [type EvaluateToolAccessInput](<#EvaluateToolAccessInput>) +- [type EvidenceRateLimiter](<#EvidenceRateLimiter>) + - [func NewEvidenceRateLimiter\(window time.Duration, maxPerWindow int\) \*EvidenceRateLimiter](<#NewEvidenceRateLimiter>) + - [func \(r \*EvidenceRateLimiter\) IsRateLimited\(record EvidenceRecord\) bool](<#EvidenceRateLimiter.IsRateLimited>) +- [type EvidenceRecord](<#EvidenceRecord>) +- [type EvidenceStore](<#EvidenceStore>) +- [type EvidenceStoreMode](<#EvidenceStoreMode>) +- [type Guard](<#Guard>) + - [func NewGuard\(badgeVerifier \*badge.Verifier, evidenceStore EvidenceStore, opts ...GuardOption\) \*Guard](<#NewGuard>) + - [func \(g \*Guard\) EvaluateToolAccess\(ctx context.Context, toolName string, paramsHash string, serverOrigin string, credential CallerCredential, config \*EvaluateConfig\) \(\*EvaluateResult, error\)](<#Guard.EvaluateToolAccess>) +- [type GuardOption](<#GuardOption>) + - [func WithEnforcementMode\(mode pip.EnforcementMode\) GuardOption](<#WithEnforcementMode>) + - [func WithGuardLogger\(logger \*slog.Logger\) GuardOption](<#WithGuardLogger>) + - [func WithObligationRegistry\(reg \*pip.ObligationRegistry\) GuardOption](<#WithObligationRegistry>) + - [func WithPDPClient\(client pip.PDPClient\) GuardOption](<#WithPDPClient>) +- [type HealthInput](<#HealthInput>) +- [type HealthStatus](<#HealthStatus>) + - [func CheckHealth\(\) \*HealthStatus](<#CheckHealth>) +- [type HybridEvidenceStore](<#HybridEvidenceStore>) + - [func NewHybridEvidenceStore\(localDir string, registryCfg RegistryEvidenceStoreConfig\) \(\*HybridEvidenceStore, error\)](<#NewHybridEvidenceStore>) + - [func \(s \*HybridEvidenceStore\) Close\(\) error](<#HybridEvidenceStore.Close>) + - [func \(s \*HybridEvidenceStore\) Store\(ctx context.Context, record EvidenceRecord\) error](<#HybridEvidenceStore.Store>) +- [type LocalEvidenceStore](<#LocalEvidenceStore>) + - [func NewLocalEvidenceStore\(dir string\) \(\*LocalEvidenceStore, error\)](<#NewLocalEvidenceStore>) + - [func \(s \*LocalEvidenceStore\) Close\(\) error](<#LocalEvidenceStore.Close>) + - [func \(s \*LocalEvidenceStore\) Store\(ctx context.Context, record EvidenceRecord\) error](<#LocalEvidenceStore.Store>) +- [type NoOpEvidenceStore](<#NoOpEvidenceStore>) + - [func \(n \*NoOpEvidenceStore\) Store\(ctx context.Context, record EvidenceRecord\) error](<#NoOpEvidenceStore.Store>) +- [type ParsedIdentity](<#ParsedIdentity>) + - [func ParseHTTPHeaders\(headers map\[string\]string\) \*ParsedIdentity](<#ParseHTTPHeaders>) + - [func ParseJSONRPCMeta\(meta map\[string\]interface\{\}\) \*ParsedIdentity](<#ParseJSONRPCMeta>) +- [type RegistryEvidenceStore](<#RegistryEvidenceStore>) + - [func NewRegistryEvidenceStore\(cfg RegistryEvidenceStoreConfig\) \*RegistryEvidenceStore](<#NewRegistryEvidenceStore>) + - [func \(s \*RegistryEvidenceStore\) Close\(\) error](<#RegistryEvidenceStore.Close>) + - [func \(s \*RegistryEvidenceStore\) Store\(ctx context.Context, record EvidenceRecord\) error](<#RegistryEvidenceStore.Store>) +- [type RegistryEvidenceStoreConfig](<#RegistryEvidenceStoreConfig>) +- [type ServerErrorCode](<#ServerErrorCode>) + - [func ErrorToServerErrorCode\(err error\) ServerErrorCode](<#ErrorToServerErrorCode>) + - [func \(c ServerErrorCode\) String\(\) string](<#ServerErrorCode.String>) +- [type ServerIdentityVerifier](<#ServerIdentityVerifier>) + - [func NewServerIdentityVerifier\(badgeVerifier \*badge.Verifier\) \*ServerIdentityVerifier](<#NewServerIdentityVerifier>) + - [func NewServerIdentityVerifierWithConfig\(badgeVerifier \*badge.Verifier, cacheConfig \*pop.CacheConfig\) \*ServerIdentityVerifier](<#NewServerIdentityVerifierWithConfig>) + - [func \(v \*ServerIdentityVerifier\) GetCachedSession\(serverDID string\) \(\*pop.CacheEntry, bool\)](<#ServerIdentityVerifier.GetCachedSession>) + - [func \(v \*ServerIdentityVerifier\) InvalidateByTrustLevel\(minLevelStr string\)](<#ServerIdentityVerifier.InvalidateByTrustLevel>) + - [func \(v \*ServerIdentityVerifier\) InvalidateSession\(serverDID string\)](<#ServerIdentityVerifier.InvalidateSession>) + - [func \(v \*ServerIdentityVerifier\) VerifyPoP\(ctx context.Context, result \*VerifyResult, popRequest \*pop.MCPPoPRequest, popResponse \*pop.MCPPoPResponse, publicKey ed25519.PublicKey, maxAge time.Duration\) \(\*VerifyResult, error\)](<#ServerIdentityVerifier.VerifyPoP>) + - [func \(v \*ServerIdentityVerifier\) VerifyServerIdentity\(ctx context.Context, serverDID string, serverBadgeJWS string, transportOrigin string, config \*VerifyConfig\) \(\*VerifyResult, error\)](<#ServerIdentityVerifier.VerifyServerIdentity>) + - [func \(v \*ServerIdentityVerifier\) VerifyWithCache\(ctx context.Context, serverDID string, serverBadgeJWS string, transportOrigin string, popRequest \*pop.MCPPoPRequest, popResponse \*pop.MCPPoPResponse, publicKey ed25519.PublicKey, config \*VerifyConfig\) \(\*VerifyResult, error\)](<#ServerIdentityVerifier.VerifyWithCache>) +- [type ServerState](<#ServerState>) + - [func \(s ServerState\) String\(\) string](<#ServerState.String>) +- [type Service](<#Service>) + - [func NewService\(deps \*Dependencies\) \*Service](<#NewService>) + - [func \(s \*Service\) EvaluateToolAccess\(ctx context.Context, input \*EvaluateToolAccessInput\) \(\*EvaluateResult, error\)](<#Service.EvaluateToolAccess>) + - [func \(s \*Service\) Health\(ctx context.Context, input \*HealthInput\) \*HealthStatus](<#Service.Health>) + - [func \(s \*Service\) ParseServerIdentityFromHTTP\(headers map\[string\]string\) \*ParsedIdentity](<#Service.ParseServerIdentityFromHTTP>) + - [func \(s \*Service\) ParseServerIdentityFromJSONRPC\(meta map\[string\]interface\{\}\) \*ParsedIdentity](<#Service.ParseServerIdentityFromJSONRPC>) + - [func \(s \*Service\) VerifyServerIdentity\(ctx context.Context, input \*VerifyServerIdentityInput\) \(\*VerifyResult, error\)](<#Service.VerifyServerIdentity>) +- [type VerifyConfig](<#VerifyConfig>) + - [func DefaultVerifyConfig\(\) \*VerifyConfig](<#DefaultVerifyConfig>) +- [type VerifyResult](<#VerifyResult>) + - [func \(r \*VerifyResult\) GetServerID\(\) string](<#VerifyResult.GetServerID>) + - [func \(r \*VerifyResult\) HasIdentity\(\) bool](<#VerifyResult.HasIdentity>) + - [func \(r \*VerifyResult\) IsDeclared\(\) bool](<#VerifyResult.IsDeclared>) + - [func \(r \*VerifyResult\) IsVerified\(\) bool](<#VerifyResult.IsVerified>) + - [func \(r \*VerifyResult\) TrustLevel\(\) int](<#VerifyResult.TrustLevel>) +- [type VerifyServerIdentityInput](<#VerifyServerIdentityInput>) + + +## Constants + + + +```go +const ( + // CoreVersion is the capiscio-core version + CoreVersion = "2.5.0" + + // ProtoVersion is the MCP proto schema version + ProtoVersion = "1.0" + + // MinMCPVersion is the minimum compatible MCP SDK version (capiscio-mcp) + // The MCP SDK has independent versioning starting from 0.1.0 + MinMCPVersion = "0.1.0" + + // MinVersion is the minimum compatible client SDK version (legacy capiscio-sdk) + MinVersion = "2.5.0" + + // MaxVersionConstraint is the constraint for maximum compatible version + MaxVersionConstraint = "< 3.0.0" +) +``` + +## Variables + +Error codes for MCP operations + +```go +var ( + // ErrBadgeMissing indicates a badge was required but not provided + ErrBadgeMissing = errors.New("badge required but not provided") + + // ErrBadgeInvalid indicates the badge is malformed or unverifiable + ErrBadgeInvalid = errors.New("badge is invalid or malformed") + + // ErrBadgeExpired indicates the badge has expired + ErrBadgeExpired = errors.New("badge has expired") + + // ErrBadgeRevoked indicates the badge has been revoked + ErrBadgeRevoked = errors.New("badge has been revoked") + + // ErrTrustInsufficient indicates the trust level is below minimum required + ErrTrustInsufficient = errors.New("trust level insufficient") + + // ErrToolNotAllowed indicates the tool is not in the allowed list + ErrToolNotAllowed = errors.New("tool not allowed") + + // ErrIssuerUntrusted indicates the badge issuer is not trusted + ErrIssuerUntrusted = errors.New("badge issuer not trusted") + + // ErrPolicyDenied indicates policy evaluation failed + ErrPolicyDenied = errors.New("policy denied access") + + // ErrDIDInvalid indicates the DID is malformed + ErrDIDInvalid = errors.New("DID is invalid") + + // ErrDIDMismatch indicates the badge subject doesn't match disclosed DID + ErrDIDMismatch = errors.New("badge subject does not match disclosed DID") + + // ErrOriginMismatch indicates the transport origin doesn't match did:web host + ErrOriginMismatch = errors.New("transport origin does not match DID host") + + // ErrPathMismatch indicates the endpoint path doesn't match did:web path + ErrPathMismatch = errors.New("endpoint path does not match DID path") + + // ErrAPIKeyInvalid indicates the API key is invalid + ErrAPIKeyInvalid = errors.New("API key is invalid") +) +``` + + +## func [CheckVersionCompatibility]() + +```go +func CheckVersionCompatibility(clientVersion string) (bool, string) +``` + +CheckVersionCompatibility validates client/core version compatibility Returns true if the client version is compatible with this core version + + +## func [CreatePoPRequest]() + +```go +func CreatePoPRequest() (*pop.MCPPoPRequest, error) +``` + +CreatePoPRequest creates a PoP request for embedding in MCP initialize \_meta Clients should call this before initialize and include result in request + + +## func [CreatePoPResponse]() + +```go +func CreatePoPResponse(clientNonce string, privateKey ed25519.PrivateKey, keyID string) (*pop.MCPPoPResponse, error) +``` + +CreatePoPResponse creates a PoP response for embedding in MCP initialize response \_meta Servers should call this when receiving a PoP request and include result in response + + +## func [ParsePoPFromMeta]() + +```go +func ParsePoPFromMeta(meta map[string]interface{}) (*pop.MCPPoPRequest, *pop.MCPPoPResponse) +``` + +ParsePoPFromMeta extracts PoP request/response from \_meta Returns \(request, response\) where request is from client and response is from server + + +## type [AuthLevel]() + +AuthLevel represents the authentication level of the caller + +```go +type AuthLevel int +``` + + + +```go +const ( + AuthLevelUnspecified AuthLevel = iota + AuthLevelAnonymous + AuthLevelAPIKey + AuthLevelBadge +) +``` + + +### func \(AuthLevel\) [String]() + +```go +func (a AuthLevel) String() string +``` + +String returns the string representation of the auth level + + +## type [CallerCredential]() + +CallerCredential represents the caller's authentication credential + +```go +type CallerCredential struct { + // BadgeJWS is the full badge JWT (if badge auth) + BadgeJWS string + + // APIKey is the API key (if API key auth) + APIKey string + + // IsAnonymous is true if no credential was provided + IsAnonymous bool +} +``` + + +### func [NewAPIKeyCredential]() + +```go +func NewAPIKeyCredential(apiKey string) CallerCredential +``` + +NewAPIKeyCredential creates a credential from an API key + + +### func [NewAnonymousCredential]() + +```go +func NewAnonymousCredential() CallerCredential +``` + +NewAnonymousCredential creates an anonymous credential + + +### func [NewBadgeCredential]() + +```go +func NewBadgeCredential(badgeJWS string) CallerCredential +``` + +NewBadgeCredential creates a credential from a badge JWS + + +### func \(CallerCredential\) [GetAuthLevel]() + +```go +func (c CallerCredential) GetAuthLevel() AuthLevel +``` + +GetAuthLevel returns the authentication level for this credential + + +## type [Decision]() + +Decision represents the access decision \(allow or deny\) + +```go +type Decision int +``` + + + +```go +const ( + DecisionUnspecified Decision = iota + DecisionAllow + DecisionDeny +) +``` + + +### func \(Decision\) [String]() + +```go +func (d Decision) String() string +``` + +String returns the string representation of the decision + + +## type [DenyReason]() + +DenyReason represents the reason for access denial \(RFC\-006 §6.4\) + +```go +type DenyReason int +``` + + + +```go +const ( + DenyReasonUnspecified DenyReason = iota + DenyReasonBadgeMissing + DenyReasonBadgeInvalid + DenyReasonBadgeExpired + DenyReasonBadgeRevoked + DenyReasonTrustInsufficient + DenyReasonToolNotAllowed + DenyReasonIssuerUntrusted + DenyReasonPolicyDenied +) +``` + + +### func [ErrorToDenyReason]() + +```go +func ErrorToDenyReason(err error) DenyReason +``` + +ErrorToDenyReason converts an error to a DenyReason + + +### func \(DenyReason\) [String]() + +```go +func (r DenyReason) String() string +``` + +String returns the RFC\-006 §10 compliant error code string + + +## type [Dependencies]() + +Dependencies holds the dependencies for the MCP service + +```go +type Dependencies struct { + BadgeVerifier *badge.Verifier + EvidenceStore EvidenceStore +} +``` + + +## type [EvaluateConfig]() + +EvaluateConfig holds configuration for tool access evaluation + +```go +type EvaluateConfig struct { + // TrustedIssuers is a list of trusted badge issuers + TrustedIssuers []string + + // MinTrustLevel is the minimum required trust level (0-4) + MinTrustLevel int + + // AcceptLevelZero allows self-signed did:key badges (Trust Level 0) + AcceptLevelZero bool + + // AllowedTools is a list of allowed tool patterns (glob patterns) + AllowedTools []string + + // PolicyVersion is the version of the policy being applied (RFC-006 §7.2) + PolicyVersion string +} +``` + + +## type [EvaluateResult]() + +EvaluateResult holds the result of tool access evaluation + +```go +type EvaluateResult struct { + // Decision is the access decision (allow or deny) + Decision Decision + + // DenyReason is the reason for denial (only set if Decision == DecisionDeny) + DenyReason DenyReason + + // DenyDetail is a human-readable denial detail + DenyDetail string + + // AgentDID is the extracted agent DID + AgentDID string + + // BadgeJTI is the badge ID (if present) + BadgeJTI string + + // AuthLevel is the authentication level + AuthLevel AuthLevel + + // TrustLevel is the verified trust level (0-4) + TrustLevel int + + // EvidenceJSON is the RFC-006 §7 compliant evidence JSON + EvidenceJSON string + + // EvidenceID is the unique evidence record ID + EvidenceID string + + // Timestamp is when the evaluation occurred + Timestamp time.Time + + // PolicyDecisionID is the PDP decision ID (RFC-005, only set when PDP is configured) + PolicyDecisionID string + + // PolicyDecision is the PDP decision string: ALLOW, DENY, or ALLOW_OBSERVE (RFC-005) + PolicyDecision string +} +``` + + +## type [EvaluateToolAccessInput]() + +EvaluateToolAccessInput represents the input for tool access evaluation + +```go +type EvaluateToolAccessInput struct { + ToolName string + ParamsHash string + Origin string + Credential CallerCredential + Config *EvaluateConfig +} +``` + + +## type [EvidenceRateLimiter]() + +EvidenceRateLimiter prevents repetitive log flooding. It deduplicates evidence by fingerprint \(tool \+ agent \+ decision\). + +```go +type EvidenceRateLimiter struct { + // contains filtered or unexported fields +} +``` + + +### func [NewEvidenceRateLimiter]() + +```go +func NewEvidenceRateLimiter(window time.Duration, maxPerWindow int) *EvidenceRateLimiter +``` + +NewEvidenceRateLimiter creates a new rate limiter. + + +### func \(\*EvidenceRateLimiter\) [IsRateLimited]() + +```go +func (r *EvidenceRateLimiter) IsRateLimited(record EvidenceRecord) bool +``` + +IsRateLimited checks if an evidence record should be rate\-limited. + + +## type [EvidenceRecord]() + +EvidenceRecord represents an RFC\-006 §7 compliant evidence record. Field names use dot notation per RFC\-006 §7.2 JSON schema. + +```go +type EvidenceRecord struct { + // EventName MUST be "capiscio.tool_invocation" per RFC-006 §7.2 + EventName string `json:"event.name"` + + // AgentDID is the agent DID or equivalent principal + AgentDID string `json:"capiscio.agent.did"` + + // BadgeJTI is the badge identifier, if present + BadgeJTI string `json:"capiscio.badge.jti,omitempty"` + + // AuthLevel is "badge", "apikey", or "anonymous" + AuthLevel string `json:"capiscio.auth.level"` + + // Target is the tool identifier + Target string `json:"capiscio.target"` + + // PolicyVersion is the policy version used + PolicyVersion string `json:"capiscio.policy_version"` + + // Decision is "ALLOW" or "DENY" + Decision string `json:"capiscio.decision"` + + // ParamsHash is the SHA-256 hash of canonicalized tool parameters (optional) + ParamsHash string `json:"capiscio.tool.params_hash,omitempty"` + + // DenyReason is the error code when decision is DENY (optional) + DenyReason string `json:"capiscio.deny_reason,omitempty"` + + // Non-RFC fields for internal use + ID string `json:"id"` + Timestamp time.Time `json:"timestamp"` + TrustLevel int `json:"trust_level"` + ServerOrigin string `json:"server_origin,omitempty"` +} +``` + + +## type [EvidenceStore]() + +EvidenceStore is the interface for storing evidence records + +```go +type EvidenceStore interface { + // Store saves an evidence record + Store(ctx context.Context, record EvidenceRecord) error +} +``` + + +## type [EvidenceStoreMode]() + +EvidenceStoreMode determines the storage backend + +```go +type EvidenceStoreMode string +``` + + + +```go +const ( + // EvidenceStoreModeLocal stores evidence to local files + EvidenceStoreModeLocal EvidenceStoreMode = "local" + + // EvidenceStoreModeRegistry streams evidence to registry server + EvidenceStoreModeRegistry EvidenceStoreMode = "registry" + + // EvidenceStoreModeHybrid stores locally AND streams to registry + EvidenceStoreModeHybrid EvidenceStoreMode = "hybrid" +) +``` + + +## type [Guard]() + +Guard implements RFC\-006 tool access evaluation with atomic evidence emission. + +```go +type Guard struct { + // contains filtered or unexported fields +} +``` + + +### func [NewGuard]() + +```go +func NewGuard(badgeVerifier *badge.Verifier, evidenceStore EvidenceStore, opts ...GuardOption) *Guard +``` + +NewGuard creates a new Guard instance. Use GuardOption functions to configure PDP integration \(RFC\-005\). + + +### func \(\*Guard\) [EvaluateToolAccess]() + +```go +func (g *Guard) EvaluateToolAccess(ctx context.Context, toolName string, paramsHash string, serverOrigin string, credential CallerCredential, config *EvaluateConfig) (*EvaluateResult, error) +``` + +EvaluateToolAccess evaluates tool access and emits evidence atomically. This implements RFC\-006 §6.2\-6.4. + +When a PDPClient is configured \(via WithPDPClient\), the PDP is the authoritative decision source — inline policy \(trust level \+ allowed tools\) is skipped. When no PDPClient is configured, the inline policy is evaluated as before. + +Key design principle: Single operation returns both decision and evidence to avoid partial failures. + + +## type [GuardOption]() + +GuardOption configures optional Guard behavior. + +```go +type GuardOption func(*Guard) +``` + + +### func [WithEnforcementMode]() + +```go +func WithEnforcementMode(mode pip.EnforcementMode) GuardOption +``` + +WithEnforcementMode sets the enforcement mode. + + +### func [WithGuardLogger]() + +```go +func WithGuardLogger(logger *slog.Logger) GuardOption +``` + +WithGuardLogger sets the logger for the guard. A nil logger is treated as slog.Default\(\). + + +### func [WithObligationRegistry]() + +```go +func WithObligationRegistry(reg *pip.ObligationRegistry) GuardOption +``` + +WithObligationRegistry sets the obligation registry for PDP obligations. + + +### func [WithPDPClient]() + +```go +func WithPDPClient(client pip.PDPClient) GuardOption +``` + +WithPDPClient enables PDP\-based policy evaluation \(RFC\-005\). When set, the PDP replaces inline policy evaluation \(trust level \+ allowed tools\). + + +## type [HealthInput]() + +HealthInput represents the input for health checks + +```go +type HealthInput struct { + ClientVersion string +} +``` + + +## type [HealthStatus]() + +HealthStatus represents the health status of the MCP service + +```go +type HealthStatus struct { + // Healthy indicates if the service is healthy + Healthy bool + + // CoreVersion is the capiscio-core version + CoreVersion string + + // ProtoVersion is the proto schema version + ProtoVersion string + + // Compatible indicates if the client version is compatible + Compatible bool +} +``` + + +### func [CheckHealth]() + +```go +func CheckHealth() *HealthStatus +``` + +CheckHealth performs a health check and returns the status + + +## type [HybridEvidenceStore]() + +HybridEvidenceStore stores evidence both locally and to registry. + +```go +type HybridEvidenceStore struct { + // contains filtered or unexported fields +} +``` + + +### func [NewHybridEvidenceStore]() + +```go +func NewHybridEvidenceStore(localDir string, registryCfg RegistryEvidenceStoreConfig) (*HybridEvidenceStore, error) +``` + +NewHybridEvidenceStore creates a store that writes to both local and registry. + + +### func \(\*HybridEvidenceStore\) [Close]() + +```go +func (s *HybridEvidenceStore) Close() error +``` + +Close closes both stores. + + +### func \(\*HybridEvidenceStore\) [Store]() + +```go +func (s *HybridEvidenceStore) Store(ctx context.Context, record EvidenceRecord) error +``` + +Store writes to both local and registry stores. + + +## type [LocalEvidenceStore]() + +LocalEvidenceStore stores evidence records to local JSON files. Each file is named by date \(YYYY\-MM\-DD.jsonl\) in JSONL format. + +```go +type LocalEvidenceStore struct { + // contains filtered or unexported fields +} +``` + + +### func [NewLocalEvidenceStore]() + +```go +func NewLocalEvidenceStore(dir string) (*LocalEvidenceStore, error) +``` + +NewLocalEvidenceStore creates a new local evidence store. If dir is empty, uses \~/.capiscio/evidence/ + + +### func \(\*LocalEvidenceStore\) [Close]() + +```go +func (s *LocalEvidenceStore) Close() error +``` + +Close closes the local evidence store. + + +### func \(\*LocalEvidenceStore\) [Store]() + +```go +func (s *LocalEvidenceStore) Store(ctx context.Context, record EvidenceRecord) error +``` + +Store writes an evidence record to the local file. + + +## type [NoOpEvidenceStore]() + +NoOpEvidenceStore is a no\-op evidence store for testing + +```go +type NoOpEvidenceStore struct{} +``` + + +### func \(\*NoOpEvidenceStore\) [Store]() + +```go +func (n *NoOpEvidenceStore) Store(ctx context.Context, record EvidenceRecord) error +``` + + + + +## type [ParsedIdentity]() + +ParsedIdentity holds parsed server identity information \(RFC\-007 §6\) + +```go +type ParsedIdentity struct { + // ServerDID is the extracted server DID + ServerDID string + + // ServerBadgeJWS is the extracted server Trust Badge (JWS) + ServerBadgeJWS string +} +``` + + +### func [ParseHTTPHeaders]() + +```go +func ParseHTTPHeaders(headers map[string]string) *ParsedIdentity +``` + +ParseHTTPHeaders extracts server identity from HTTP headers \(RFC\-007 §6.1\) Standard headers: \- Capiscio\-Server\-DID: The server's DID \- Capiscio\-Server\-Badge: The server's Trust Badge \(JWS\) + + +### func [ParseJSONRPCMeta]() + +```go +func ParseJSONRPCMeta(meta map[string]interface{}) *ParsedIdentity +``` + +ParseJSONRPCMeta extracts server identity from JSON\-RPC \_meta object \(RFC\-007 §6.2\) Standard fields: \- capiscio\_server\_did: The server's DID \- capiscio\_server\_badge: The server's Trust Badge \(JWS\) \- capiscio\_pop\_nonce: Client's PoP challenge \(in request\) \- capiscio\_pop\_signature: Server's PoP response \(in response\) + + +## type [RegistryEvidenceStore]() + +RegistryEvidenceStore streams evidence to the registry server's events endpoint. It implements batching and rate limiting to avoid overwhelming the server. + +```go +type RegistryEvidenceStore struct { + // contains filtered or unexported fields +} +``` + + +### func [NewRegistryEvidenceStore]() + +```go +func NewRegistryEvidenceStore(cfg RegistryEvidenceStoreConfig) *RegistryEvidenceStore +``` + +NewRegistryEvidenceStore creates a new registry streaming evidence store. + + +### func \(\*RegistryEvidenceStore\) [Close]() + +```go +func (s *RegistryEvidenceStore) Close() error +``` + +Close stops the registry evidence store. + + +### func \(\*RegistryEvidenceStore\) [Store]() + +```go +func (s *RegistryEvidenceStore) Store(ctx context.Context, record EvidenceRecord) error +``` + +Store adds an evidence record to the buffer for streaming. + + +## type [RegistryEvidenceStoreConfig]() + +RegistryEvidenceStoreConfig configures the registry evidence store + +```go +type RegistryEvidenceStoreConfig struct { + // Endpoint is the registry events endpoint URL + Endpoint string + + // APIKey for authentication + APIKey string + + // BatchSize is the number of records to batch before flushing (default: 100) + BatchSize int + + // FlushInterval is the max time between flushes (default: 5s) + FlushInterval time.Duration + + // RateLimitWindow is the deduplication window (default: 60s) + RateLimitWindow time.Duration + + // RateLimitMaxPerWindow is max events per fingerprint per window (default: 10) + RateLimitMaxPerWindow int +} +``` + + +## type [ServerErrorCode]() + +ServerErrorCode represents server verification error codes \(RFC\-007 §8\) These codes align with RFC\-006 error conventions for consistency. + +```go +type ServerErrorCode int +``` + + + +```go +const ( + ServerErrorNone ServerErrorCode = iota + // SERVER_IDENTITY_MISSING - No server identity disclosed (UNVERIFIED_ORIGIN) + ServerErrorCodeDIDMissing + // SERVER_BADGE_MISSING - DID disclosed but no badge (DECLARED_PRINCIPAL) + ServerErrorCodeBadgeMissing + // SERVER_BADGE_INVALID - Badge signature or expiry verification failed + ServerErrorCodeBadgeInvalid + // SERVER_BADGE_REVOKED - Server badge has been revoked + ServerErrorCodeBadgeRevoked + // SERVER_TRUST_INSUFFICIENT - Trust level below required min_trust_level + ServerErrorCodeTrustInsufficient + // SERVER_DID_MISMATCH - Badge subject does not match disclosed DID + ServerErrorCodeDIDMismatch + // SERVER_ISSUER_UNTRUSTED - Badge issuer not in trusted_issuers + ServerErrorCodeIssuerUntrusted + // SERVER_DOMAIN_MISMATCH - did:web host does not match transport origin + ServerErrorCodeOriginMismatch + // SERVER_PATH_MISMATCH - did:web path does not match MCP endpoint path + ServerErrorCodePathMismatch + // SERVER_DID_RESOLUTION_FAILED - Could not resolve DID document + ServerErrorCodeDIDResolutionFailed + // SERVER_POP_FAILED - Proof of Possession verification failed + ServerErrorCodePoPFailed + // SERVER_POP_EXPIRED - PoP challenge expired + ServerErrorCodePoPExpired + // SERVER_KEY_FETCH_FAILED - Could not fetch server public key + ServerErrorCodeKeyFetchFailed +) +``` + + +### func [ErrorToServerErrorCode]() + +```go +func ErrorToServerErrorCode(err error) ServerErrorCode +``` + +ErrorToServerErrorCode converts an error to a ServerErrorCode + + +### func \(ServerErrorCode\) [String]() + +```go +func (c ServerErrorCode) String() string +``` + +String returns the string representation of the server error code These match the RFC\-007 §8 error code names + + +## type [ServerIdentityVerifier]() + +ServerIdentityVerifier implements RFC\-007 server identity verification. It uses the same badge.Verifier as agent identity verification for consistency. + +Per RFC\-007 §3: A Server Badge is a Trust Badge \(RFC\-002\) issued for a server DID. This means MCP servers use the SAME identity infrastructure as agents: \- Same DID patterns \(did:web:domain:servers:id vs did:web:domain:agents:id\) \- Same Trust Badge format \- Same verification workflow via badge.Verifier + +The verification has two phases: 1. Badge verification: Verify the badge is valid and signed by trusted CA 2. PoP verification: Verify the server controls the DID's private key + +RFC\-007 PoP is embedded in the MCP handshake \(initialize\), NOT via CA endpoints: \- Client sends nonce in initialize request \_meta \- Server returns signature in initialize response \_meta \- No dependency on /badge/challenge endpoints + +```go +type ServerIdentityVerifier struct { + // contains filtered or unexported fields +} +``` + + +### func [NewServerIdentityVerifier]() + +```go +func NewServerIdentityVerifier(badgeVerifier *badge.Verifier) *ServerIdentityVerifier +``` + +NewServerIdentityVerifier creates a new server identity verifier. The badgeVerifier is the same verifier used for agent badges \- this ensures consistent identity verification across both agents and MCP servers. + + +### func [NewServerIdentityVerifierWithConfig]() + +```go +func NewServerIdentityVerifierWithConfig(badgeVerifier *badge.Verifier, cacheConfig *pop.CacheConfig) *ServerIdentityVerifier +``` + +NewServerIdentityVerifierWithConfig creates a verifier with custom cache config + + +### func \(\*ServerIdentityVerifier\) [GetCachedSession]() + +```go +func (v *ServerIdentityVerifier) GetCachedSession(serverDID string) (*pop.CacheEntry, bool) +``` + +GetCachedSession retrieves a previously verified session Use this to avoid re\-verifying on every request within a session + + +### func \(\*ServerIdentityVerifier\) [InvalidateByTrustLevel]() + +```go +func (v *ServerIdentityVerifier) InvalidateByTrustLevel(minLevelStr string) +``` + +InvalidateByTrustLevel removes all sessions below a trust level Use when trust requirements increase minLevelStr should be "0", "1", "2", "3", or "4" per RFC\-002 §5 + + +### func \(\*ServerIdentityVerifier\) [InvalidateSession]() + +```go +func (v *ServerIdentityVerifier) InvalidateSession(serverDID string) +``` + +InvalidateSession removes a cached session \(e.g., on disconnect\) + + +### func \(\*ServerIdentityVerifier\) [VerifyPoP]() + +```go +func (v *ServerIdentityVerifier) VerifyPoP(ctx context.Context, result *VerifyResult, popRequest *pop.MCPPoPRequest, popResponse *pop.MCPPoPResponse, publicKey ed25519.PublicKey, maxAge time.Duration) (*VerifyResult, error) +``` + +VerifyPoP verifies a server's Proof of Possession response. + +This is called AFTER VerifyServerIdentity succeeds \(returns DECLARED\_PRINCIPAL\). The PoP data comes from the MCP initialize handshake: \- Client sent nonce in request \_meta \(capiscio\_pop\_nonce\) \- Server returned signature in response \_meta \(capiscio\_pop\_signature\) + +Returns updated result with VERIFIED\_PRINCIPAL if PoP succeeds. + + +### func \(\*ServerIdentityVerifier\) [VerifyServerIdentity]() + +```go +func (v *ServerIdentityVerifier) VerifyServerIdentity(ctx context.Context, serverDID string, serverBadgeJWS string, transportOrigin string, config *VerifyConfig) (*VerifyResult, error) +``` + +VerifyServerIdentity implements RFC\-007 §7.2 server identity verification algorithm. + +RFC\-007 defines Server Badges as Trust Badges where sub = server DID. This method verifies the server badge using the same badge.Verifier as agents. + +The algorithm classifies servers into THREE states: \- VERIFIED\_PRINCIPAL: DID \+ badge verified \+ PoP verified \(full trust\) \- DECLARED\_PRINCIPAL: DID \+ badge verified, PoP not performed \(partial trust\) \- UNVERIFIED\_ORIGIN: Missing DID, missing badge, or verification failed + +For VERIFIED\_PRINCIPAL, also call VerifyPoP with the PoP data from initialize. + + +### func \(\*ServerIdentityVerifier\) [VerifyWithCache]() + +```go +func (v *ServerIdentityVerifier) VerifyWithCache(ctx context.Context, serverDID string, serverBadgeJWS string, transportOrigin string, popRequest *pop.MCPPoPRequest, popResponse *pop.MCPPoPResponse, publicKey ed25519.PublicKey, config *VerifyConfig) (*VerifyResult, error) +``` + +VerifyWithCache checks cache first, then performs full verification if needed. This is the recommended entry point for verifying server identity. + + +## type [ServerState]() + +ServerState represents the server classification state \(RFC\-007 §5.2\) Three distinct states reflect the verification depth: \- VERIFIED\_PRINCIPAL: Badge \+ PoP verified \(full trust\) \- DECLARED\_PRINCIPAL: Badge verified, PoP not performed \(partial trust\) \- UNVERIFIED\_ORIGIN: No identity disclosed or verification failed + +```go +type ServerState int +``` + + + +```go +const ( + ServerStateUnspecified ServerState = iota + // ServerStateVerifiedPrincipal indicates full verification: + // - Server DID disclosed + // - Server badge verified by trusted CA + // - PoP verified (server proved key ownership) + ServerStateVerifiedPrincipal + + // ServerStateDeclaredPrincipal indicates partial verification: + // - Server DID disclosed + // - Server badge verified by trusted CA + // - PoP NOT performed (key ownership not proven) + ServerStateDeclaredPrincipal + + // ServerStateUnverifiedOrigin indicates no verification: + // - No DID disclosed, OR + // - No badge provided, OR + // - Badge verification failed + // Note: This is distinct from Trust Level 0 (self-signed did:key) + ServerStateUnverifiedOrigin +) +``` + + +### func \(ServerState\) [String]() + +```go +func (s ServerState) String() string +``` + +String returns the string representation of the server state + + +## type [Service]() + +Service implements the MCP service logic Note: gRPC integration requires running \`make proto\` first to generate pkg/rpc/gen/capiscio/v1/mcp.pb.go and mcp\_grpc.pb.go + +```go +type Service struct { + // contains filtered or unexported fields +} +``` + + +### func [NewService]() + +```go +func NewService(deps *Dependencies) *Service +``` + +NewService creates a new MCP service instance + + +### func \(\*Service\) [EvaluateToolAccess]() + +```go +func (s *Service) EvaluateToolAccess(ctx context.Context, input *EvaluateToolAccessInput) (*EvaluateResult, error) +``` + +EvaluateToolAccess evaluates tool access using RFC\-006 §6.2\-6.4 + + +### func \(\*Service\) [Health]() + +```go +func (s *Service) Health(ctx context.Context, input *HealthInput) *HealthStatus +``` + +Health performs a health check + + +### func \(\*Service\) [ParseServerIdentityFromHTTP]() + +```go +func (s *Service) ParseServerIdentityFromHTTP(headers map[string]string) *ParsedIdentity +``` + +ParseServerIdentityFromHTTP parses server identity from HTTP headers + + +### func \(\*Service\) [ParseServerIdentityFromJSONRPC]() + +```go +func (s *Service) ParseServerIdentityFromJSONRPC(meta map[string]interface{}) *ParsedIdentity +``` + +ParseServerIdentityFromJSONRPC parses server identity from JSON\-RPC \_meta + + +### func \(\*Service\) [VerifyServerIdentity]() + +```go +func (s *Service) VerifyServerIdentity(ctx context.Context, input *VerifyServerIdentityInput) (*VerifyResult, error) +``` + +VerifyServerIdentity verifies server identity using RFC\-007 §7.2 + + +## type [VerifyConfig]() + +VerifyConfig holds configuration for server identity verification + +```go +type VerifyConfig struct { + // AllowedDIDMethods is a list of allowed DID methods (e.g., "web", "key") + AllowedDIDMethods []string + + // RequireOriginBinding enforces origin binding for did:web + RequireOriginBinding bool + + // PoPMaxAge is the maximum age of a PoP nonce (default: 30 seconds) + PoPMaxAge time.Duration +} +``` + + +### func [DefaultVerifyConfig]() + +```go +func DefaultVerifyConfig() *VerifyConfig +``` + +DefaultVerifyConfig returns the default verification configuration + + +## type [VerifyResult]() + +VerifyResult holds the result of server identity verification + +```go +type VerifyResult struct { + // State is the server classification state (RFC-007 §5.2) + // VERIFIED_PRINCIPAL, DECLARED_PRINCIPAL, or UNVERIFIED_ORIGIN + State ServerState + + // ServerID is the confirmed server DID + ServerID string + + // TrustLevelStr is the verified trust level from the server badge ("0"-"4") + // Per RFC-002 §5, trust levels are strings to avoid falsiness bugs + TrustLevelStr string + + // BadgeJTI is the badge identifier for correlation + BadgeJTI string + + // BadgeExpiresAt is when the server badge expires + BadgeExpiresAt time.Time + + // PoPVerified is true if PoP verification succeeded + PoPVerified bool + + // PoPRequired is true if PoP should be performed (badge valid, PoP not done) + PoPRequired bool + + // ErrorCode is the error code (only set on failure) + ErrorCode ServerErrorCode + + // ErrorDetail is a human-readable error detail + ErrorDetail string +} +``` + + +### func \(\*VerifyResult\) [GetServerID]() + +```go +func (r *VerifyResult) GetServerID() string +``` + +GetServerID returns the server's DID + + +### func \(\*VerifyResult\) [HasIdentity]() + +```go +func (r *VerifyResult) HasIdentity() bool +``` + +HasIdentity returns true if any identity was verified \(not UNVERIFIED\_ORIGIN\) + + +### func \(\*VerifyResult\) [IsDeclared]() + +```go +func (r *VerifyResult) IsDeclared() bool +``` + +IsDeclared returns true if the server is partially verified \(DECLARED\_PRINCIPAL\) + + +### func \(\*VerifyResult\) [IsVerified]() + +```go +func (r *VerifyResult) IsVerified() bool +``` + +IsVerified returns true if the server is fully verified \(VERIFIED\_PRINCIPAL\) + + +### func \(\*VerifyResult\) [TrustLevel]() + +```go +func (r *VerifyResult) TrustLevel() int +``` + +TrustLevel returns the trust level as an int \(for convenience\) Returns 0 if the trust level string is empty or invalid + + +## type [VerifyServerIdentityInput]() + +VerifyServerIdentityInput represents the input for server identity verification + +```go +type VerifyServerIdentityInput struct { + ServerDID string + ServerBadgeJWS string + Origin string + Config *VerifyConfig +} +``` + +# pip + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/pip" +``` + +## Index + +- [Constants](<#constants>) +- [func CacheKeyComponents\(did, badgeJTI, operation, resourceID string, extra ...string\) string](<#CacheKeyComponents>) +- [func ValidDecision\(d string\) bool](<#ValidDecision>) +- [type ActionAttributes](<#ActionAttributes>) +- [type BreakGlassScope](<#BreakGlassScope>) +- [type BreakGlassToken](<#BreakGlassToken>) + - [func ParseBreakGlassJWS\(compact string, publicKey crypto.PublicKey\) \(\*BreakGlassToken, error\)](<#ParseBreakGlassJWS>) +- [type BreakGlassValidator](<#BreakGlassValidator>) + - [func NewBreakGlassValidator\(publicKey crypto.PublicKey\) \*BreakGlassValidator](<#NewBreakGlassValidator>) + - [func \(v \*BreakGlassValidator\) MatchesScope\(token \*BreakGlassToken, method, route string\) bool](<#BreakGlassValidator.MatchesScope>) + - [func \(v \*BreakGlassValidator\) PublicKey\(\) crypto.PublicKey](<#BreakGlassValidator.PublicKey>) + - [func \(v \*BreakGlassValidator\) ValidateToken\(token \*BreakGlassToken\) error](<#BreakGlassValidator.ValidateToken>) +- [type ContextAttributes](<#ContextAttributes>) +- [type DecisionCache](<#DecisionCache>) +- [type DecisionRequest](<#DecisionRequest>) +- [type DecisionResponse](<#DecisionResponse>) +- [type EnforcementMode](<#EnforcementMode>) + - [func EnforcementModeFromEnv\(\) \(EnforcementMode, error\)](<#EnforcementModeFromEnv>) + - [func ParseEnforcementMode\(s string\) \(EnforcementMode, error\)](<#ParseEnforcementMode>) + - [func \(em EnforcementMode\) StricterThan\(other EnforcementMode\) bool](<#EnforcementMode.StricterThan>) + - [func \(em EnforcementMode\) String\(\) string](<#EnforcementMode.String>) +- [type EnvironmentAttrs](<#EnvironmentAttrs>) +- [type HTTPPDPClient](<#HTTPPDPClient>) + - [func NewHTTPPDPClient\(endpoint string, timeout time.Duration, opts ...HTTPPDPClientOption\) \*HTTPPDPClient](<#NewHTTPPDPClient>) + - [func \(c \*HTTPPDPClient\) Evaluate\(ctx context.Context, req \*DecisionRequest\) \(\*DecisionResponse, error\)](<#HTTPPDPClient.Evaluate>) +- [type HTTPPDPClientOption](<#HTTPPDPClientOption>) + - [func WithHTTPClient\(hc \*http.Client\) HTTPPDPClientOption](<#WithHTTPClient>) + - [func WithPEPID\(id string\) HTTPPDPClientOption](<#WithPEPID>) +- [type InMemoryCache](<#InMemoryCache>) + - [func NewInMemoryCache\(opts ...InMemoryCacheOption\) \*InMemoryCache](<#NewInMemoryCache>) + - [func \(c \*InMemoryCache\) Get\(key string\) \(\*DecisionResponse, bool\)](<#InMemoryCache.Get>) + - [func \(c \*InMemoryCache\) Put\(key string, resp \*DecisionResponse, maxTTL time.Duration\)](<#InMemoryCache.Put>) +- [type InMemoryCacheOption](<#InMemoryCacheOption>) + - [func WithCacheDeny\(enabled bool\) InMemoryCacheOption](<#WithCacheDeny>) +- [type Obligation](<#Obligation>) +- [type ObligationError](<#ObligationError>) +- [type ObligationHandler](<#ObligationHandler>) +- [type ObligationRegistry](<#ObligationRegistry>) + - [func NewObligationRegistry\(logger \*slog.Logger\) \*ObligationRegistry](<#NewObligationRegistry>) + - [func \(r \*ObligationRegistry\) Enforce\(ctx context.Context, mode EnforcementMode, obligations \[\]Obligation\) ObligationResult](<#ObligationRegistry.Enforce>) + - [func \(r \*ObligationRegistry\) Register\(handler ObligationHandler\)](<#ObligationRegistry.Register>) +- [type ObligationResult](<#ObligationResult>) +- [type PDPClient](<#PDPClient>) +- [type ResourceAttributes](<#ResourceAttributes>) +- [type SubjectAttributes](<#SubjectAttributes>) + + +## Constants + +Policy telemetry field constants \(RFC\-005 §10\). These MUST be emitted on every policy enforcement event. + +```go +const ( + // TelemetryDecisionID is REQUIRED on every policy enforcement event. + TelemetryDecisionID = "capiscio.policy.decision_id" + + // TelemetryDecision is REQUIRED on every policy enforcement event. + // Values: "ALLOW", "DENY", or "ALLOW_OBSERVE" + TelemetryDecision = "capiscio.policy.decision" + + // TelemetryOverride indicates break-glass was used. + TelemetryOverride = "capiscio.policy.override" + + // TelemetryOverrideJTI is the break-glass token JTI. + TelemetryOverrideJTI = "capiscio.policy.override_jti" + + // TelemetryErrorCode is REQUIRED when PDP is unavailable. + TelemetryErrorCode = "capiscio.policy.error_code" + + // PolicyEventName is the RECOMMENDED event name. + PolicyEventName = "capiscio.policy_enforced" + + // ErrorCodePDPUnavailable indicates PDP could not be reached. + ErrorCodePDPUnavailable = "PDP_UNAVAILABLE" +) +``` + +DecisionAllow and DecisionDeny are the only valid PDP response values. ALLOW\_OBSERVE is a PEP telemetry value \(§7.4\), NOT a PDP response. + +```go +const ( + DecisionAllow = "ALLOW" + DecisionDeny = "DENY" + DecisionObserve = "ALLOW_OBSERVE" // PEP-only: emitted when EM-OBSERVE falls back on PDP unavailability +) +``` + +DefaultPDPTimeout is the recommended PDP query timeout. + +```go +const DefaultPDPTimeout = 500 * time.Millisecond +``` + +PIPVersion is the protocol version identifier. PEPs MUST include this in every request. PEPs MUST reject responses from PDPs that do not recognize the version. + +```go +const PIPVersion = "capiscio.pip.v1" +``` + +TxnIDHeader is the HTTP header for transaction ID propagation \(RFC\-004\). + +```go +const TxnIDHeader = "X-Capiscio-Txn" +``` + + +## func [CacheKeyComponents]() + +```go +func CacheKeyComponents(did, badgeJTI, operation, resourceID string, extra ...string) string +``` + +CacheKeyComponents builds a deterministic cache key from PIP request fields. Key includes: subject.did \+ subject.badge\_jti \+ action.operation \+ resource.identifier \+ enforcement\_mode. + + +## func [ValidDecision]() + +```go +func ValidDecision(d string) bool +``` + +ValidDecision returns true if d is a valid PDP response decision value. + + +## type [ActionAttributes]() + +ActionAttributes identify what is being attempted. + +```go +type ActionAttributes struct { + CapabilityClass *string `json:"capability_class"` // null in badge-only mode + Operation string `json:"operation"` // tool name, HTTP method+route, etc. +} +``` + + +## type [BreakGlassScope]() + +BreakGlassScope defines what the override token permits. + +```go +type BreakGlassScope struct { + Methods []string `json:"methods"` // supports "*" + Routes []string `json:"routes"` // supports "*" and prefix matching +} +``` + + +## type [BreakGlassToken]() + +BreakGlassToken represents a break\-glass override token \(RFC\-005 §9\). Break\-glass tokens bypass PDP authorization \(not authentication\). + +```go +type BreakGlassToken struct { + JTI string `json:"jti"` + IAT int64 `json:"iat"` + EXP int64 `json:"exp"` + ISS string `json:"iss"` // root admin issuer, NOT an agent DID + SUB string `json:"sub"` // operator identity + Scope BreakGlassScope `json:"scope"` + Reason string `json:"reason"` // human-readable justification +} +``` + + +### func [ParseBreakGlassJWS]() + +```go +func ParseBreakGlassJWS(compact string, publicKey crypto.PublicKey) (*BreakGlassToken, error) +``` + +ParseBreakGlassJWS verifies a compact JWS break\-glass token and extracts claims. The publicKey MUST be the dedicated break\-glass key, not the CA badge\-signing key. + + +## type [BreakGlassValidator]() + +BreakGlassValidator validates break\-glass override tokens. + +```go +type BreakGlassValidator struct { + // contains filtered or unexported fields +} +``` + + +### func [NewBreakGlassValidator]() + +```go +func NewBreakGlassValidator(publicKey crypto.PublicKey) *BreakGlassValidator +``` + +NewBreakGlassValidator creates a new break\-glass validator. publicKey MUST be the dedicated break\-glass verification key, NOT the CA key used for badge signing. + + +### func \(\*BreakGlassValidator\) [MatchesScope]() + +```go +func (v *BreakGlassValidator) MatchesScope(token *BreakGlassToken, method, route string) bool +``` + +MatchesScope checks if the token's scope covers the given method and route. Scope matching rules \(§9.2\): \- "\*" matches everything \- Exact match wins \- Routes support prefix matching + + +### func \(\*BreakGlassValidator\) [PublicKey]() + +```go +func (v *BreakGlassValidator) PublicKey() crypto.PublicKey +``` + +PublicKey returns the configured break\-glass public key for external use. + + +### func \(\*BreakGlassValidator\) [ValidateToken]() + +```go +func (v *BreakGlassValidator) ValidateToken(token *BreakGlassToken) error +``` + +ValidateToken validates a break\-glass token's claims \(not signature — see note\). + +In production, the token would arrive as a signed JWS. Signature verification requires the go\-jose library which is already a dependency in pkg/badge. This method validates the claims after JWS verification has extracted them. + + +## type [ContextAttributes]() + +ContextAttributes provide correlation and authority context. + +```go +type ContextAttributes struct { + TxnID string `json:"txn_id"` + HopID *string `json:"hop_id"` // OPTIONAL + EnvelopeID *string `json:"envelope_id"` // null in badge-only + DelegationDepth *int `json:"delegation_depth"` // null in badge-only + Constraints json.RawMessage `json:"constraints"` // null in badge-only; see §3.1.9 + ParentConstraints json.RawMessage `json:"parent_constraints"` // null in badge-only; see §3.1.9 + EnforcementMode string `json:"enforcement_mode"` // PEP-level config +} +``` + + +## type [DecisionCache]() + +DecisionCache provides temporal\-bounded caching for PDP decisions. RFC\-005 §6.3: PEPs MUST NOT cache a decision beyond the earliest of: \- The ttl value from the PDP response \- The governing Envelope's expires\_at \(N/A in badge\-only mode\) \- The Badge's expiration \(exp claim\) + +```go +type DecisionCache interface { + // Get retrieves a cached decision. Returns nil, false on miss or expiry. + Get(key string) (*DecisionResponse, bool) + + // Put stores a decision with a maximum TTL. + // The cache MUST NOT serve this entry after maxTTL elapses. + Put(key string, resp *DecisionResponse, maxTTL time.Duration) +} +``` + + +## type [DecisionRequest]() + +DecisionRequest is the canonical PDP query \(RFC\-005 §5.1\). + +```go +type DecisionRequest struct { + PIPVersion string `json:"pip_version"` + Subject SubjectAttributes `json:"subject"` + Action ActionAttributes `json:"action"` + Resource ResourceAttributes `json:"resource"` + Context ContextAttributes `json:"context"` + Environment EnvironmentAttrs `json:"environment"` +} +``` + + +## type [DecisionResponse]() + +DecisionResponse is the canonical PDP response \(RFC\-005 §6.1\). + +```go +type DecisionResponse struct { + Decision string `json:"decision"` // "ALLOW" or "DENY" + DecisionID string `json:"decision_id"` // globally unique + Obligations []Obligation `json:"obligations"` // may be empty + Reason string `json:"reason,omitempty"` // human-readable + TTL *int `json:"ttl,omitempty"` // cache lifetime seconds +} +``` + + +## type [EnforcementMode]() + +EnforcementMode represents the PEP enforcement strictness level. RFC\-008 §10.5 defines the strict total order: EM\-OBSERVE \< EM\-GUARD \< EM\-DELEGATE \< EM\-STRICT. + +NOTE: The iota integer values are an implementation detail, not a stable API. Comparisons MUST use the enum constants \(EMObserve \< EMStrict\), never numeric literals. + +```go +type EnforcementMode int +``` + + + +```go +const ( + EMObserve EnforcementMode = iota // log only, never block + EMGuard // block on verification failure, log PDP denials + EMDelegate // block on verification + PDP deny, best-effort obligations + EMStrict // block on everything including obligation failures +) +``` + + +### func [EnforcementModeFromEnv]() + +```go +func EnforcementModeFromEnv() (EnforcementMode, error) +``` + +EnforcementModeFromEnv reads the enforcement mode from the environment variable. Returns EMObserve \(the safe default for rollout\) if the variable is not set. Returns an error if the variable is set but not a valid mode. + + +### func [ParseEnforcementMode]() + +```go +func ParseEnforcementMode(s string) (EnforcementMode, error) +``` + +ParseEnforcementMode parses an RFC enforcement mode string. Returns an error if the string is not a recognized mode. + + +### func \(EnforcementMode\) [StricterThan]() + +```go +func (em EnforcementMode) StricterThan(other EnforcementMode) bool +``` + +StricterThan returns true if em is stricter than other. + + +### func \(EnforcementMode\) [String]() + +```go +func (em EnforcementMode) String() string +``` + +String returns the RFC string representation of the enforcement mode. + + +## type [EnvironmentAttrs]() + +EnvironmentAttrs provide PEP context. + +```go +type EnvironmentAttrs struct { + Workspace *string `json:"workspace,omitempty"` // OPTIONAL + PEPID *string `json:"pep_id,omitempty"` // OPTIONAL + Time *string `json:"time,omitempty"` // RECOMMENDED, ISO 8601 +} +``` + + +## type [HTTPPDPClient]() + +HTTPPDPClient is the reference implementation of PDPClient for any REST\-based PDP. + +```go +type HTTPPDPClient struct { + // contains filtered or unexported fields +} +``` + + +### func [NewHTTPPDPClient]() + +```go +func NewHTTPPDPClient(endpoint string, timeout time.Duration, opts ...HTTPPDPClientOption) *HTTPPDPClient +``` + +NewHTTPPDPClient creates an HTTP\-based PDP client. endpoint is the PDP evaluation URL. timeout controls the HTTP client timeout \(use DefaultPDPTimeout if unsure\). If timeout is \<= 0, DefaultPDPTimeout is used to prevent indefinite hangs. + + +### func \(\*HTTPPDPClient\) [Evaluate]() + +```go +func (c *HTTPPDPClient) Evaluate(ctx context.Context, req *DecisionRequest) (*DecisionResponse, error) +``` + +Evaluate sends a PIP decision request to the HTTP PDP and returns the response. + + +## type [HTTPPDPClientOption]() + +HTTPPDPClientOption configures an HTTPPDPClient. + +```go +type HTTPPDPClientOption func(*HTTPPDPClient) +``` + + +### func [WithHTTPClient]() + +```go +func WithHTTPClient(hc *http.Client) HTTPPDPClientOption +``` + +WithHTTPClient sets a custom HTTP client \(e.g., for custom TLS or timeouts\). + + +### func [WithPEPID]() + +```go +func WithPEPID(id string) HTTPPDPClientOption +``` + +WithPEPID sets the PEP identifier included in requests. + + +## type [InMemoryCache]() + +InMemoryCache is a simple in\-memory DecisionCache. Suitable for single\-instance deployments. For multi\-instance, use a shared cache. + +```go +type InMemoryCache struct { + // contains filtered or unexported fields +} +``` + + +### func [NewInMemoryCache]() + +```go +func NewInMemoryCache(opts ...InMemoryCacheOption) *InMemoryCache +``` + +NewInMemoryCache creates a new in\-memory decision cache. + + +### func \(\*InMemoryCache\) [Get]() + +```go +func (c *InMemoryCache) Get(key string) (*DecisionResponse, bool) +``` + +Get retrieves a cached decision if it exists and has not expired. Expired entries are evicted on read to prevent unbounded memory growth. + + +### func \(\*InMemoryCache\) [Put]() + +```go +func (c *InMemoryCache) Put(key string, resp *DecisionResponse, maxTTL time.Duration) +``` + +Put stores a decision with a bounded TTL. Skips DENY decisions unless cacheDeny is enabled. Skips if maxTTL is zero or negative \(badge already expired\). + + +## type [InMemoryCacheOption]() + +InMemoryCacheOption configures an InMemoryCache. + +```go +type InMemoryCacheOption func(*InMemoryCache) +``` + + +### func [WithCacheDeny]() + +```go +func WithCacheDeny(enabled bool) InMemoryCacheOption +``` + +WithCacheDeny enables caching of DENY decisions. WARNING: Caching DENY can cause persistent blocks after PDP recovery \("deny storm"\). + + +## type [Obligation]() + +Obligation is a conditional contract per RFC\-005 §7.1. + +```go +type Obligation struct { + Type string `json:"type"` + Params json.RawMessage `json:"params"` // opaque JSON — PEP passes to handler without interpretation +} +``` + + +## type [ObligationError]() + +ObligationError captures a single obligation enforcement failure. + +```go +type ObligationError struct { + Type string + Known bool + Message string +} +``` + + +## type [ObligationHandler]() + +ObligationHandler processes a specific type of obligation returned by the PDP. + +```go +type ObligationHandler interface { + // Handle attempts to enforce an obligation. + // Returns nil if successful, error if enforcement failed. + Handle(ctx context.Context, obligation Obligation) error + + // Supports returns true if this handler recognizes the obligation type. + Supports(obligationType string) bool +} +``` + + +## type [ObligationRegistry]() + +ObligationRegistry maps obligation types to handlers and enforces the RFC\-005 §7.2 enforcement mode matrix. + +```go +type ObligationRegistry struct { + // contains filtered or unexported fields +} +``` + + +### func [NewObligationRegistry]() + +```go +func NewObligationRegistry(logger *slog.Logger) *ObligationRegistry +``` + +NewObligationRegistry creates a new obligation registry. + + +### func \(\*ObligationRegistry\) [Enforce]() + +```go +func (r *ObligationRegistry) Enforce(ctx context.Context, mode EnforcementMode, obligations []Obligation) ObligationResult +``` + +Enforce processes obligations according to the enforcement mode matrix. + +RFC\-005 §7.2 matrix: + +``` +| Mode | Known Obligation | Unknown Obligation | +|-------------|---------------------------|------------------------| +| EM-OBSERVE | Log, do not enforce | Log, skip | +| EM-GUARD | Log, best-effort, no block| Log, skip | +| EM-DELEGATE | MUST attempt, log failure | Log warning, proceed | +| EM-STRICT | MUST enforce, block fail | MUST DENY | +``` + + +### func \(\*ObligationRegistry\) [Register]() + +```go +func (r *ObligationRegistry) Register(handler ObligationHandler) +``` + +Register adds an obligation handler to the registry. Panics if handler is nil to fail fast at setup time rather than at enforcement time. + + +## type [ObligationResult]() + +ObligationResult summarizes obligation enforcement for a request. + +```go +type ObligationResult struct { + // Proceed is true if the request should continue after obligation processing. + Proceed bool + + // Errors contains any obligation enforcement errors (for logging). + Errors []ObligationError +} +``` + + +## type [PDPClient]() + +PDPClient is the engine\-agnostic interface for policy decisions. Implementations exist for OPA, Cedar, and any HTTP\-based PDP. + +```go +type PDPClient interface { + // Evaluate sends a PIP decision request and returns the response. + // Implementations MUST set a reasonable timeout (RECOMMENDED: 500ms). + // On error (network, timeout, malformed response), return error — do NOT + // return a synthetic ALLOW or DENY. The PEP handles PDP unavailability + // per enforcement mode (§7.4). + Evaluate(ctx context.Context, req *DecisionRequest) (*DecisionResponse, error) +} +``` + + +## type [ResourceAttributes]() + +ResourceAttributes identify the target. + +```go +type ResourceAttributes struct { + Identifier string `json:"identifier"` // target resource URI +} +``` + + +## type [SubjectAttributes]() + +SubjectAttributes identifies the acting agent. + +```go +type SubjectAttributes struct { + DID string `json:"did"` // Badge sub (Claims.Subject) + BadgeJTI string `json:"badge_jti"` // Badge jti (Claims.JTI) + IAL string `json:"ial"` // Badge ial (Claims.IAL) + TrustLevel string `json:"trust_level"` // Badge vc.credentialSubject.level (Claims.TrustLevel()) +} +``` + +# pop + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/pop" +``` + +Package pop provides shared Proof of Possession cryptographic primitives. + +These primitives are used by: \- RFC\-003: Badge issuance PoP \(agent proves key to CA\) \- RFC\-007: MCP server identity PoP \(server proves key to client\) + +The package extracts common operations to avoid duplication: \- Nonce generation \- JWS proof signing \- Proof verification \- DID document key extraction + +Package pop provides shared Proof of Possession cryptographic primitives. This file implements session caching for verified PoP results. + +Session caching avoids re\-verifying on every request within a session. Per team guidance, session definitions: \- HTTP: per connection or per TTL window \(configurable\) \- MCP stdio: per process lifetime or per initialize session + +Cache invalidation occurs on: \- Badge expiry \- TTL expiry \(configurable, default: sync with badge TTL\) \- Explicit invalidation \(key rotation, trust level change\) + +## Index + +- [Constants](<#constants>) +- [Variables](<#variables>) +- [func DecodeJWKPublicKey\(jwk \*JWK\) \(ed25519.PublicKey, error\)](<#DecodeJWKPublicKey>) +- [func DecodeMultibaseKey\(multibase string\) \(ed25519.PublicKey, error\)](<#DecodeMultibaseKey>) +- [func GenerateNonce\(size int\) \(string, error\)](<#GenerateNonce>) +- [func SignNonce\(nonce string, privateKey ed25519.PrivateKey, keyID string\) \(string, error\)](<#SignNonce>) +- [func VerifyMCPPoPResponse\(request \*MCPPoPRequest, response \*MCPPoPResponse, publicKey ed25519.PublicKey, maxAge time.Duration\) error](<#VerifyMCPPoPResponse>) +- [func VerifyResponse\(challenge \*Challenge, response \*Response, publicKey ed25519.PublicKey\) error](<#VerifyResponse>) +- [func VerifySignature\(signatureJWS string, expectedNonce string, publicKey ed25519.PublicKey\) error](<#VerifySignature>) +- [type CacheConfig](<#CacheConfig>) + - [func DefaultCacheConfig\(\) \*CacheConfig](<#DefaultCacheConfig>) +- [type CacheEntry](<#CacheEntry>) +- [type Challenge](<#Challenge>) + - [func NewChallenge\(subjectDID string, ttl time.Duration\) \(\*Challenge, error\)](<#NewChallenge>) + - [func \(c \*Challenge\) IsExpired\(\) bool](<#Challenge.IsExpired>) + - [func \(c \*Challenge\) MarshalJSON\(\) \(\[\]byte, error\)](<#Challenge.MarshalJSON>) + - [func \(c \*Challenge\) UnmarshalJSON\(data \[\]byte\) error](<#Challenge.UnmarshalJSON>) +- [type JWK](<#JWK>) + - [func EncodeJWKPublicKey\(publicKey ed25519.PublicKey, keyID string\) \*JWK](<#EncodeJWKPublicKey>) +- [type MCPPoPRequest](<#MCPPoPRequest>) + - [func NewMCPPoPRequest\(\) \(\*MCPPoPRequest, error\)](<#NewMCPPoPRequest>) + - [func ParseMCPPoPRequestFromMeta\(meta map\[string\]interface\{\}\) \*MCPPoPRequest](<#ParseMCPPoPRequestFromMeta>) + - [func \(r \*MCPPoPRequest\) ToMeta\(\) map\[string\]interface\{\}](<#MCPPoPRequest.ToMeta>) +- [type MCPPoPResponse](<#MCPPoPResponse>) + - [func CreateMCPPoPResponse\(clientNonce string, privateKey ed25519.PrivateKey, keyID string\) \(\*MCPPoPResponse, error\)](<#CreateMCPPoPResponse>) + - [func ParseMCPPoPResponseFromMeta\(meta map\[string\]interface\{\}\) \*MCPPoPResponse](<#ParseMCPPoPResponseFromMeta>) + - [func \(r \*MCPPoPResponse\) ToMeta\(\) map\[string\]interface\{\}](<#MCPPoPResponse.ToMeta>) +- [type Response](<#Response>) + - [func CreateResponse\(challenge \*Challenge, privateKey ed25519.PrivateKey, keyID string\) \(\*Response, error\)](<#CreateResponse>) +- [type SessionCache](<#SessionCache>) + - [func NewSessionCache\(config \*CacheConfig\) \*SessionCache](<#NewSessionCache>) + - [func \(c \*SessionCache\) Clear\(\)](<#SessionCache.Clear>) + - [func \(c \*SessionCache\) Delete\(key string\)](<#SessionCache.Delete>) + - [func \(c \*SessionCache\) Get\(key string\) \*CacheEntry](<#SessionCache.Get>) + - [func \(c \*SessionCache\) InvalidateBySession\(sessionID string\)](<#SessionCache.InvalidateBySession>) + - [func \(c \*SessionCache\) InvalidateByTrustLevel\(minLevelStr string\)](<#SessionCache.InvalidateByTrustLevel>) + - [func \(c \*SessionCache\) Size\(\) int](<#SessionCache.Size>) + - [func \(c \*SessionCache\) Store\(key string, entry \*CacheEntry\)](<#SessionCache.Store>) + + +## Constants + +DefaultNonceSize is 32 bytes \(256 bits of entropy\) + +```go +const DefaultNonceSize = 32 +``` + +## Variables + + + +```go +var ( + ErrNonceGeneration = errors.New("failed to generate nonce") + ErrNonceMismatch = errors.New("nonce does not match") + ErrSignatureInvalid = errors.New("signature verification failed") + ErrChallengeExpired = errors.New("challenge has expired") + ErrInvalidPrivateKey = errors.New("invalid private key") + ErrUnsupportedKeyType = errors.New("unsupported key type") +) +``` + + +## func [DecodeJWKPublicKey]() + +```go +func DecodeJWKPublicKey(jwk *JWK) (ed25519.PublicKey, error) +``` + +DecodeJWKPublicKey decodes an Ed25519 public key from JWK format + + +## func [DecodeMultibaseKey]() + +```go +func DecodeMultibaseKey(multibase string) (ed25519.PublicKey, error) +``` + +DecodeMultibaseKey decodes a multibase\-encoded public key Supports 'z' \(base58btc\) prefix for Ed25519VerificationKey2020 + + +## func [GenerateNonce]() + +```go +func GenerateNonce(size int) (string, error) +``` + +GenerateNonce creates a cryptographically secure random nonce Returns base64url\-encoded string \(no padding per RFC\-003 §6.2\) + + +## func [SignNonce]() + +```go +func SignNonce(nonce string, privateKey ed25519.PrivateKey, keyID string) (string, error) +``` + +SignNonce signs a nonce with an Ed25519 private key Returns JWS compact serialization + +This is used by: \- RFC\-003: Agent signing PoP proof for CA \- RFC\-007: MCP server signing nonce for client verification + + +## func [VerifyMCPPoPResponse]() + +```go +func VerifyMCPPoPResponse(request *MCPPoPRequest, response *MCPPoPResponse, publicKey ed25519.PublicKey, maxAge time.Duration) error +``` + +VerifyMCPPoPResponse verifies MCP server's PoP response Used by clients to verify server identity within handshake + + +## func [VerifyResponse]() + +```go +func VerifyResponse(challenge *Challenge, response *Response, publicKey ed25519.PublicKey) error +``` + +VerifyResponse verifies a PoP response against a challenge + + +## func [VerifySignature]() + +```go +func VerifySignature(signatureJWS string, expectedNonce string, publicKey ed25519.PublicKey) error +``` + +VerifySignature verifies a JWS signature over a nonce using an Ed25519 public key + +This is used by: \- RFC\-003: CA verifying agent PoP proof \- RFC\-007: Client verifying MCP server PoP response + + +## type [CacheConfig]() + +CacheConfig configures session cache behavior + +```go +type CacheConfig struct { + // DefaultTTL is the default cache entry lifetime + // Should generally match badge TTL (default: 5 minutes) + DefaultTTL time.Duration + + // MaxEntries limits cache size (0 = unlimited) + MaxEntries int + + // CleanupInterval is how often to purge expired entries (0 = no background cleanup) + CleanupInterval time.Duration +} +``` + + +### func [DefaultCacheConfig]() + +```go +func DefaultCacheConfig() *CacheConfig +``` + +DefaultCacheConfig returns sensible defaults + + +## type [CacheEntry]() + +CacheEntry represents a cached verification result + +```go +type CacheEntry struct { + // SubjectDID is the verified DID + SubjectDID string + + // TrustLevelStr from verified badge (string per RFC-002 §5) + TrustLevelStr string + + // BadgeJTI for correlation + BadgeJTI string + + // BadgeExpiresAt is when the badge expires + BadgeExpiresAt time.Time + + // VerifiedAt is when PoP was verified + VerifiedAt time.Time + + // ExpiresAt is when this cache entry expires + ExpiresAt time.Time + + // SessionID for MCP session correlation (optional) + SessionID string +} +``` + + +## type [Challenge]() + +Challenge represents a PoP challenge \(nonce \+ metadata\) Used by both RFC\-003 and RFC\-007 + +```go +type Challenge struct { + // Nonce is the random challenge value (base64url encoded, no padding) + Nonce string `json:"nonce"` + + // CreatedAt is when the challenge was created + CreatedAt time.Time `json:"created_at"` + + // ExpiresAt is when the challenge expires + ExpiresAt time.Time `json:"expires_at"` + + // SubjectDID is the DID being challenged to prove key ownership + SubjectDID string `json:"subject_did"` +} +``` + + +### func [NewChallenge]() + +```go +func NewChallenge(subjectDID string, ttl time.Duration) (*Challenge, error) +``` + +NewChallenge creates a PoP challenge with the given TTL + + +### func \(\*Challenge\) [IsExpired]() + +```go +func (c *Challenge) IsExpired() bool +``` + +IsExpired checks if the challenge has expired + + +### func \(\*Challenge\) [MarshalJSON]() + +```go +func (c *Challenge) MarshalJSON() ([]byte, error) +``` + +MarshalJSON implements json.Marshaler + + +### func \(\*Challenge\) [UnmarshalJSON]() + +```go +func (c *Challenge) UnmarshalJSON(data []byte) error +``` + +UnmarshalJSON implements json.Unmarshaler + + +## type [JWK]() + +JWK represents a JSON Web Key \(minimal for Ed25519\) + +```go +type JWK struct { + Kty string `json:"kty"` + Crv string `json:"crv"` + X string `json:"x"` + Kid string `json:"kid,omitempty"` +} +``` + + +### func [EncodeJWKPublicKey]() + +```go +func EncodeJWKPublicKey(publicKey ed25519.PublicKey, keyID string) *JWK +``` + +EncodeJWKPublicKey encodes an Ed25519 public key to JWK format + + +## type [MCPPoPRequest]() + +MCPPoPRequest represents PoP data sent by client in initialize request \_meta RFC\-007: Embedded in MCP handshake, not separate endpoint + +```go +type MCPPoPRequest struct { + // ClientNonce is the challenge nonce for server to sign + ClientNonce string `json:"client_nonce"` + + // CreatedAt is when the nonce was generated + CreatedAt time.Time `json:"created_at"` +} +``` + + +### func [NewMCPPoPRequest]() + +```go +func NewMCPPoPRequest() (*MCPPoPRequest, error) +``` + +NewMCPPoPRequest creates a PoP request for MCP initialize + + +### func [ParseMCPPoPRequestFromMeta]() + +```go +func ParseMCPPoPRequestFromMeta(meta map[string]interface{}) *MCPPoPRequest +``` + +ParseMCPPoPRequestFromMeta extracts PoP request from MCP \_meta + + +### func \(\*MCPPoPRequest\) [ToMeta]() + +```go +func (r *MCPPoPRequest) ToMeta() map[string]interface{} +``` + +ToMeta serializes PoP request for MCP \_meta + + +## type [MCPPoPResponse]() + +MCPPoPResponse represents PoP data returned by server in initialize response \_meta RFC\-007: Server proves key ownership within handshake + +```go +type MCPPoPResponse struct { + // NonceSignature is JWS over client_nonce, signed with server's DID key + NonceSignature string `json:"nonce_signature"` + + // SignedAt is when the signature was created + SignedAt time.Time `json:"signed_at"` +} +``` + + +### func [CreateMCPPoPResponse]() + +```go +func CreateMCPPoPResponse(clientNonce string, privateKey ed25519.PrivateKey, keyID string) (*MCPPoPResponse, error) +``` + +CreateMCPPoPResponse creates a PoP response for MCP initialize Used by MCP servers to prove key ownership + + +### func [ParseMCPPoPResponseFromMeta]() + +```go +func ParseMCPPoPResponseFromMeta(meta map[string]interface{}) *MCPPoPResponse +``` + +ParseMCPPoPResponseFromMeta extracts PoP response from MCP \_meta + + +### func \(\*MCPPoPResponse\) [ToMeta]() + +```go +func (r *MCPPoPResponse) ToMeta() map[string]interface{} +``` + +ToMeta serializes PoP response for MCP \_meta + + +## type [Response]() + +Response represents a PoP response \(signature over nonce\) + +```go +type Response struct { + // Nonce echoed from challenge + Nonce string `json:"nonce"` + + // Signature is JWS compact serialization over nonce + Signature string `json:"signature"` + + // SubjectDID is the responder's DID + SubjectDID string `json:"subject_did"` +} +``` + + +### func [CreateResponse]() + +```go +func CreateResponse(challenge *Challenge, privateKey ed25519.PrivateKey, keyID string) (*Response, error) +``` + +CreateResponse creates a complete PoP response by signing the challenge nonce + + +## type [SessionCache]() + +SessionCache provides thread\-safe caching of PoP verification results + +```go +type SessionCache struct { + // contains filtered or unexported fields +} +``` + + +### func [NewSessionCache]() + +```go +func NewSessionCache(config *CacheConfig) *SessionCache +``` + +NewSessionCache creates a new session cache + + +### func \(\*SessionCache\) [Clear]() + +```go +func (c *SessionCache) Clear() +``` + +Clear removes all entries + + +### func \(\*SessionCache\) [Delete]() + +```go +func (c *SessionCache) Delete(key string) +``` + +Delete removes a cached entry + + +### func \(\*SessionCache\) [Get]() + +```go +func (c *SessionCache) Get(key string) *CacheEntry +``` + +Get retrieves a cached entry if valid Returns nil if not found or expired + + +### func \(\*SessionCache\) [InvalidateBySession]() + +```go +func (c *SessionCache) InvalidateBySession(sessionID string) +``` + +InvalidateBySession removes all entries for a session + + +### func \(\*SessionCache\) [InvalidateByTrustLevel]() + +```go +func (c *SessionCache) InvalidateByTrustLevel(minLevelStr string) +``` + +InvalidateByTrustLevel removes entries below a trust level Use when trust requirements increase mid\-session minLevelStr should be "0", "1", "2", "3", or "4" + + +### func \(\*SessionCache\) [Size]() + +```go +func (c *SessionCache) Size() int +``` + +Size returns the number of cached entries + + +### func \(\*SessionCache\) [Store]() + +```go +func (c *SessionCache) Store(key string, entry *CacheEntry) +``` + +Store caches a verification result Key is typically the server DID + +# protocol + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/protocol" +``` + +Package protocol defines the interfaces and implementations for communicating with A2A agents. + +## Index + +- [type Client](<#Client>) +- [type HTTPClient](<#HTTPClient>) + - [func NewHTTPClient\(url string\) \*HTTPClient](<#NewHTTPClient>) + - [func \(c \*HTTPClient\) Close\(\) error](<#HTTPClient.Close>) + - [func \(c \*HTTPClient\) Ping\(ctx context.Context\) \(time.Duration, error\)](<#HTTPClient.Ping>) +- [type JSONRPCClient](<#JSONRPCClient>) + - [func NewJSONRPCClient\(url string\) \*JSONRPCClient](<#NewJSONRPCClient>) + - [func \(c \*JSONRPCClient\) Close\(\) error](<#JSONRPCClient.Close>) + - [func \(c \*JSONRPCClient\) Ping\(ctx context.Context\) \(time.Duration, error\)](<#JSONRPCClient.Ping>) + + + +## type [Client]() + +Client defines the interface for an A2A protocol client. + +```go +type Client interface { + // Ping checks if the agent is reachable and responsive. + // Returns the latency and any error encountered. + Ping(ctx context.Context) (time.Duration, error) + + // Close cleans up any resources used by the client. + Close() error +} +``` + + +## type [HTTPClient]() + +HTTPClient implements the Client interface for HTTP\+JSON transport. + +```go +type HTTPClient struct { + // contains filtered or unexported fields +} +``` + + +### func [NewHTTPClient]() + +```go +func NewHTTPClient(url string) *HTTPClient +``` + +NewHTTPClient creates a new HTTPClient. + + +### func \(\*HTTPClient\) [Close]() + +```go +func (c *HTTPClient) Close() error +``` + +Close cleans up resources. + + +### func \(\*HTTPClient\) [Ping]() + +```go +func (c *HTTPClient) Ping(ctx context.Context) (time.Duration, error) +``` + +Ping performs a simple GET request to the agent URL to check availability. It attempts to call 'GET /tasks' which is a standard v0.3.0 endpoint. + + +## type [JSONRPCClient]() + +JSONRPCClient implements the Client interface for JSON\-RPC transport over HTTP. + +```go +type JSONRPCClient struct { + // contains filtered or unexported fields +} +``` + + +### func [NewJSONRPCClient]() + +```go +func NewJSONRPCClient(url string) *JSONRPCClient +``` + +NewJSONRPCClient creates a new JSONRPCClient. + + +### func \(\*JSONRPCClient\) [Close]() + +```go +func (c *JSONRPCClient) Close() error +``` + +Close cleans up resources. + + +### func \(\*JSONRPCClient\) [Ping]() + +```go +func (c *JSONRPCClient) Ping(ctx context.Context) (time.Duration, error) +``` + +Ping sends a standard JSON\-RPC request to check availability. It attempts to call 'tasks/list' which is a standard v0.3.0 method. Even if the method returns an empty list or an error \(e.g. auth\), a valid JSON\-RPC response indicates the agent is alive. + +# registry + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/registry" +``` + +Package registry implements the Trust Registry interface for key retrieval. + +## Index + +- [Constants](<#constants>) +- [type AgentStatus](<#AgentStatus>) + - [func \(s \*AgentStatus\) IsActive\(\) bool](<#AgentStatus.IsActive>) +- [type BadgeStatus](<#BadgeStatus>) +- [type CloudRegistry](<#CloudRegistry>) + - [func NewCloudRegistry\(url string\) \*CloudRegistry](<#NewCloudRegistry>) + - [func \(r \*CloudRegistry\) GetAgentStatus\(ctx context.Context, issuerURL string, agentID string\) \(\*AgentStatus, error\)](<#CloudRegistry.GetAgentStatus>) + - [func \(r \*CloudRegistry\) GetBadgeStatus\(ctx context.Context, issuerURL string, jti string\) \(\*BadgeStatus, error\)](<#CloudRegistry.GetBadgeStatus>) + - [func \(r \*CloudRegistry\) GetPublicKey\(ctx context.Context, issuer string\) \(crypto.PublicKey, error\)](<#CloudRegistry.GetPublicKey>) + - [func \(r \*CloudRegistry\) IsRevoked\(\_ context.Context, \_ string\) \(bool, error\)](<#CloudRegistry.IsRevoked>) + - [func \(r \*CloudRegistry\) SyncRevocations\(ctx context.Context, issuerURL string, since time.Time\) \(\[\]Revocation, error\)](<#CloudRegistry.SyncRevocations>) +- [type LocalRegistry](<#LocalRegistry>) + - [func NewLocalRegistry\(path string\) \*LocalRegistry](<#NewLocalRegistry>) + - [func \(r \*LocalRegistry\) GetAgentStatus\(\_ context.Context, \_ string, \_ string\) \(\*AgentStatus, error\)](<#LocalRegistry.GetAgentStatus>) + - [func \(r \*LocalRegistry\) GetBadgeStatus\(\_ context.Context, \_ string, \_ string\) \(\*BadgeStatus, error\)](<#LocalRegistry.GetBadgeStatus>) + - [func \(r \*LocalRegistry\) GetPublicKey\(\_ context.Context, \_ string\) \(crypto.PublicKey, error\)](<#LocalRegistry.GetPublicKey>) + - [func \(r \*LocalRegistry\) IsRevoked\(\_ context.Context, \_ string\) \(bool, error\)](<#LocalRegistry.IsRevoked>) + - [func \(r \*LocalRegistry\) SyncRevocations\(\_ context.Context, \_ string, \_ time.Time\) \(\[\]Revocation, error\)](<#LocalRegistry.SyncRevocations>) +- [type Registry](<#Registry>) +- [type Revocation](<#Revocation>) + + +## Constants + +AgentStatusActive is the status for an active agent. + +```go +const AgentStatusActive = "active" +``` + +AgentStatusDisabled is the status for a disabled agent. + +```go +const AgentStatusDisabled = "disabled" +``` + +AgentStatusSuspended is the status for a suspended agent. + +```go +const AgentStatusSuspended = "suspended" +``` + + +## type [AgentStatus]() + +AgentStatus represents the status of an agent. + +```go +type AgentStatus struct { + // ID is the agent identifier. + ID string `json:"id"` + + // Status is the agent status: "active", "disabled", or "suspended". + Status string `json:"status"` + + // DisabledAt is the timestamp when the agent was disabled. + DisabledAt *time.Time `json:"disabledAt,omitempty"` + + // Reason is the reason for disabling (if disabled). + Reason string `json:"reason,omitempty"` +} +``` + + +### func \(\*AgentStatus\) [IsActive]() + +```go +func (s *AgentStatus) IsActive() bool +``` + +IsActive returns true if the agent status is active. + + +## type [BadgeStatus]() + +BadgeStatus represents the status of a badge. + +```go +type BadgeStatus struct { + // JTI is the badge ID. + JTI string `json:"jti"` + + // Subject is the agent DID (sub claim). + Subject string `json:"sub,omitempty"` + + // Revoked indicates if the badge has been revoked. + Revoked bool `json:"revoked"` + + // Reason is the revocation reason (if revoked). + Reason string `json:"reason,omitempty"` + + // RevokedAt is the timestamp when the badge was revoked. + RevokedAt *time.Time `json:"revokedAt,omitempty"` + + // ExpiresAt is the badge expiry time. + ExpiresAt *time.Time `json:"expiresAt,omitempty"` +} +``` + + +## type [CloudRegistry]() + +CloudRegistry implements Registry by fetching keys from a URL. + +```go +type CloudRegistry struct { + RegistryURL string + Client *http.Client + // contains filtered or unexported fields +} +``` + + +### func [NewCloudRegistry]() + +```go +func NewCloudRegistry(url string) *CloudRegistry +``` + +NewCloudRegistry creates a new CloudRegistry. + + +### func \(\*CloudRegistry\) [GetAgentStatus]() + +```go +func (r *CloudRegistry) GetAgentStatus(ctx context.Context, issuerURL string, agentID string) (*AgentStatus, error) +``` + +GetAgentStatus retrieves the status of an agent from the registry. Endpoint: GET \{issuerURL\}/v1/agents/\{agentID\}/status + + +### func \(\*CloudRegistry\) [GetBadgeStatus]() + +```go +func (r *CloudRegistry) GetBadgeStatus(ctx context.Context, issuerURL string, jti string) (*BadgeStatus, error) +``` + +GetBadgeStatus retrieves the status of a badge from the registry. Endpoint: GET \{issuerURL\}/v1/badges/\{jti\}/status + + +### func \(\*CloudRegistry\) [GetPublicKey]() + +```go +func (r *CloudRegistry) GetPublicKey(ctx context.Context, issuer string) (crypto.PublicKey, error) +``` + +GetPublicKey fetches the key from the Registry URL. It assumes the URL returns a single JWK for now \(MVP\). + + +### func \(\*CloudRegistry\) [IsRevoked]() + +```go +func (r *CloudRegistry) IsRevoked(_ context.Context, _ string) (bool, error) +``` + +IsRevoked checks revocation \(not implemented for MVP\). Deprecated: Use GetBadgeStatus instead. + + +### func \(\*CloudRegistry\) [SyncRevocations]() + +```go +func (r *CloudRegistry) SyncRevocations(ctx context.Context, issuerURL string, since time.Time) ([]Revocation, error) +``` + +SyncRevocations fetches revocations from the registry since the given time. Endpoint: GET \{issuerURL\}/v1/revocations?since=\{ISO8601\} + + +## type [LocalRegistry]() + +LocalRegistry implements Registry using a local file. + +```go +type LocalRegistry struct { + KeyPath string + // contains filtered or unexported fields +} +``` + + +### func [NewLocalRegistry]() + +```go +func NewLocalRegistry(path string) *LocalRegistry +``` + +NewLocalRegistry creates a new LocalRegistry. + + +### func \(\*LocalRegistry\) [GetAgentStatus]() + +```go +func (r *LocalRegistry) GetAgentStatus(_ context.Context, _ string, _ string) (*AgentStatus, error) +``` + +GetAgentStatus is not supported for local registry. Returns an error indicating online verification is not available. + + +### func \(\*LocalRegistry\) [GetBadgeStatus]() + +```go +func (r *LocalRegistry) GetBadgeStatus(_ context.Context, _ string, _ string) (*BadgeStatus, error) +``` + +GetBadgeStatus is not supported for local registry. Returns an error indicating online verification is not available. + + +### func \(\*LocalRegistry\) [GetPublicKey]() + +```go +func (r *LocalRegistry) GetPublicKey(_ context.Context, _ string) (crypto.PublicKey, error) +``` + +GetPublicKey reads the key from the local file. It ignores the issuer argument for the MVP \(trusts the local key for all\). + + +### func \(\*LocalRegistry\) [IsRevoked]() + +```go +func (r *LocalRegistry) IsRevoked(_ context.Context, _ string) (bool, error) +``` + +IsRevoked checks if the ID is in the local blocklist \(not implemented yet\). Deprecated: Use GetBadgeStatus instead. + + +### func \(\*LocalRegistry\) [SyncRevocations]() + +```go +func (r *LocalRegistry) SyncRevocations(_ context.Context, _ string, _ time.Time) ([]Revocation, error) +``` + +SyncRevocations is not supported for local registry. Returns an error indicating online sync is not available. + + +## type [Registry]() + +Registry defines the interface for the CapiscIO Trust Registry. It is responsible for resolving trusted public keys for Issuers, checking revocation status, and agent status. See RFC\-002: Trust Badge Specification. + +```go +type Registry interface { + // GetPublicKey fetches the public key for a given Issuer DID/URI. + // Returns the public key and any error encountered. + GetPublicKey(ctx context.Context, issuerDID string) (crypto.PublicKey, error) + + // IsRevoked checks if a specific Badge ID (jti) has been revoked. + // Deprecated: Use GetBadgeStatus for richer information. + IsRevoked(ctx context.Context, badgeID string) (bool, error) + + // GetBadgeStatus retrieves the status of a badge by jti. + // Returns BadgeStatus or error if the badge is not found. + GetBadgeStatus(ctx context.Context, issuerURL string, jti string) (*BadgeStatus, error) + + // GetAgentStatus retrieves the status of an agent by ID. + // Returns AgentStatus or error if the agent is not found. + GetAgentStatus(ctx context.Context, issuerURL string, agentID string) (*AgentStatus, error) + + // SyncRevocations fetches revocations since the given timestamp. + // Used for bulk sync of revocation lists for offline verification. + SyncRevocations(ctx context.Context, issuerURL string, since time.Time) ([]Revocation, error) +} +``` + + +## type [Revocation]() + +Revocation represents a single badge revocation entry. + +```go +type Revocation struct { + // JTI is the revoked badge ID. + JTI string `json:"jti"` + + // RevokedAt is when the badge was revoked. + RevokedAt time.Time `json:"revokedAt"` + + // Reason is the optional revocation reason. + Reason string `json:"reason,omitempty"` +} +``` + +# report + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/report" +``` + +Package report defines the structures for validation and scoring reports. + +## Index + +- [type AvailabilityResult](<#AvailabilityResult>) +- [type ValidationIssue](<#ValidationIssue>) +- [type ValidationResult](<#ValidationResult>) + - [func \(r \*ValidationResult\) AddError\(code, message, field string\)](<#ValidationResult.AddError>) + - [func \(r \*ValidationResult\) AddWarning\(code, message, field string\)](<#ValidationResult.AddWarning>) + + + +## type [AvailabilityResult]() + +AvailabilityResult contains the results of availability testing. + +```go +type AvailabilityResult struct { + Score float64 `json:"score"` + Tested bool `json:"tested"` + EndpointURL string `json:"endpointUrl,omitempty"` + LatencyMS int64 `json:"latencyMs,omitempty"` + Error string `json:"error,omitempty"` +} +``` + + +## type [ValidationIssue]() + +ValidationIssue represents a specific problem found during validation. + +```go +type ValidationIssue struct { + Code string `json:"code"` + Message string `json:"message"` + Severity string `json:"severity"` // "error", "warning", "info" + Field string `json:"field,omitempty"` +} +``` + + +## type [ValidationResult]() + +ValidationResult contains the complete results of an Agent Card validation. + +```go +type ValidationResult struct { + Success bool `json:"success"` + ComplianceScore float64 `json:"complianceScore"` + TrustScore float64 `json:"trustScore"` + Availability AvailabilityResult `json:"availability"` + Issues []ValidationIssue `json:"issues"` + Signatures *crypto.SignatureVerificationResult `json:"signatures,omitempty"` +} +``` + + +### func \(\*ValidationResult\) [AddError]() + +```go +func (r *ValidationResult) AddError(code, message, field string) +``` + +AddError adds an error issue to the result. + + +### func \(\*ValidationResult\) [AddWarning]() + +```go +func (r *ValidationResult) AddWarning(code, message, field string) +``` + +AddWarning adds a warning issue to the result. + +# revocation + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/revocation" +``` + +Package revocation provides a local cache for badge revocations. This enables offline and semi\-connected verification modes. See RFC\-002 §7.4 Cache Staleness Guidance. + +## Index + +- [Constants](<#constants>) +- [Variables](<#variables>) +- [func DefaultCacheDir\(\) string](<#DefaultCacheDir>) +- [type Cache](<#Cache>) +- [type FileCache](<#FileCache>) + - [func NewFileCache\(path string\) \(\*FileCache, error\)](<#NewFileCache>) + - [func \(c \*FileCache\) Add\(jti string, revokedAt time.Time\) error](<#FileCache.Add>) + - [func \(c \*FileCache\) Clear\(\) error](<#FileCache.Clear>) + - [func \(c \*FileCache\) Count\(\) int](<#FileCache.Count>) + - [func \(c \*FileCache\) IsRevoked\(jti string\) bool](<#FileCache.IsRevoked>) + - [func \(c \*FileCache\) IsStale\(threshold time.Duration\) bool](<#FileCache.IsStale>) + - [func \(c \*FileCache\) LastSynced\(\) time.Time](<#FileCache.LastSynced>) + - [func \(c \*FileCache\) Sync\(revocations \[\]Revocation\) error](<#FileCache.Sync>) +- [type MemoryCache](<#MemoryCache>) + - [func NewMemoryCache\(\) \*MemoryCache](<#NewMemoryCache>) + - [func \(c \*MemoryCache\) Add\(jti string, revokedAt time.Time\) error](<#MemoryCache.Add>) + - [func \(c \*MemoryCache\) Clear\(\) error](<#MemoryCache.Clear>) + - [func \(c \*MemoryCache\) IsRevoked\(jti string\) bool](<#MemoryCache.IsRevoked>) + - [func \(c \*MemoryCache\) IsStale\(threshold time.Duration\) bool](<#MemoryCache.IsStale>) + - [func \(c \*MemoryCache\) LastSynced\(\) time.Time](<#MemoryCache.LastSynced>) + - [func \(c \*MemoryCache\) Sync\(revocations \[\]Revocation\) error](<#MemoryCache.Sync>) +- [type Revocation](<#Revocation>) + + +## Constants + +DefaultStaleThreshold is the default time after which cache is considered stale. Per RFC\-002 §7.4, default is 5 minutes. + +```go +const DefaultStaleThreshold = 5 * time.Minute +``` + +## Variables + +Common errors returned by this package. + +```go +var ( + ErrCacheNotFound = errors.New("revocation cache not found") + ErrCacheCorrupt = errors.New("revocation cache is corrupt") +) +``` + + +## func [DefaultCacheDir]() + +```go +func DefaultCacheDir() string +``` + +DefaultCacheDir returns the default revocation cache directory. + + +## type [Cache]() + +Cache is the interface for a revocation cache. + +```go +type Cache interface { + // IsRevoked checks if a badge jti is in the revocation cache. + IsRevoked(jti string) bool + + // Add adds a revocation to the cache. + Add(jti string, revokedAt time.Time) error + + // Sync updates the cache with new revocations. + Sync(revocations []Revocation) error + + // LastSynced returns when the cache was last synced. + LastSynced() time.Time + + // IsStale returns true if the cache is older than the threshold. + IsStale(threshold time.Duration) bool + + // Clear clears all revocations from the cache. + Clear() error +} +``` + + +## type [FileCache]() + +FileCache implements Cache using a JSON file. + +```go +type FileCache struct { + // contains filtered or unexported fields +} +``` + + +### func [NewFileCache]() + +```go +func NewFileCache(path string) (*FileCache, error) +``` + +NewFileCache creates a new file\-based revocation cache. If path is empty, uses default location. + + +### func \(\*FileCache\) [Add]() + +```go +func (c *FileCache) Add(jti string, revokedAt time.Time) error +``` + +Add adds a single revocation to the cache. + + +### func \(\*FileCache\) [Clear]() + +```go +func (c *FileCache) Clear() error +``` + +Clear removes all revocations from the cache. + + +### func \(\*FileCache\) [Count]() + +```go +func (c *FileCache) Count() int +``` + +Count returns the number of revocations in the cache. + + +### func \(\*FileCache\) [IsRevoked]() + +```go +func (c *FileCache) IsRevoked(jti string) bool +``` + +IsRevoked checks if a badge jti is in the revocation cache. + + +### func \(\*FileCache\) [IsStale]() + +```go +func (c *FileCache) IsStale(threshold time.Duration) bool +``` + +IsStale returns true if the cache is older than the threshold. Per RFC\-002, default threshold is 5 minutes. + + +### func \(\*FileCache\) [LastSynced]() + +```go +func (c *FileCache) LastSynced() time.Time +``` + +LastSynced returns when the cache was last synced. + + +### func \(\*FileCache\) [Sync]() + +```go +func (c *FileCache) Sync(revocations []Revocation) error +``` + +Sync updates the cache with new revocations from the registry. + + +## type [MemoryCache]() + +MemoryCache is an in\-memory only cache for testing. + +```go +type MemoryCache struct { + // contains filtered or unexported fields +} +``` + + +### func [NewMemoryCache]() + +```go +func NewMemoryCache() *MemoryCache +``` + +NewMemoryCache creates a new in\-memory revocation cache. + + +### func \(\*MemoryCache\) [Add]() + +```go +func (c *MemoryCache) Add(jti string, revokedAt time.Time) error +``` + +Add adds a revoked badge to the cache. + + +### func \(\*MemoryCache\) [Clear]() + +```go +func (c *MemoryCache) Clear() error +``` + + + + +### func \(\*MemoryCache\) [IsRevoked]() + +```go +func (c *MemoryCache) IsRevoked(jti string) bool +``` + +IsRevoked checks if a badge JTI has been revoked. + + +### func \(\*MemoryCache\) [IsStale]() + +```go +func (c *MemoryCache) IsStale(threshold time.Duration) bool +``` + +IsStale returns true if the cache hasn't been synced within the threshold. + + +### func \(\*MemoryCache\) [LastSynced]() + +```go +func (c *MemoryCache) LastSynced() time.Time +``` + +LastSynced returns the time of the last cache sync. + + +### func \(\*MemoryCache\) [Sync]() + +```go +func (c *MemoryCache) Sync(revocations []Revocation) error +``` + +Sync synchronizes the cache with a list of revocations. + + +## type [Revocation]() + +Revocation represents a single revocation entry. + +```go +type Revocation struct { + // JTI is the revoked badge ID. + JTI string `json:"jti"` + + // RevokedAt is when the badge was revoked. + RevokedAt time.Time `json:"revokedAt"` + + // Reason is the optional revocation reason. + Reason string `json:"reason,omitempty"` +} +``` + +# scoring + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/scoring" +``` + +Package scoring implements the validation and scoring logic for Agent Cards. + +## Index + +- [type AvailabilityScorer](<#AvailabilityScorer>) + - [func NewAvailabilityScorer\(timeout time.Duration\) \*AvailabilityScorer](<#NewAvailabilityScorer>) + - [func \(s \*AvailabilityScorer\) Score\(ctx context.Context, card \*agentcard.AgentCard\) report.AvailabilityResult](<#AvailabilityScorer.Score>) +- [type ComplianceConfig](<#ComplianceConfig>) +- [type ComplianceScorer](<#ComplianceScorer>) + - [func NewComplianceScorer\(config \*ComplianceConfig\) \*ComplianceScorer](<#NewComplianceScorer>) + - [func \(s \*ComplianceScorer\) Score\(card \*agentcard.AgentCard\) \(float64, \[\]report.ValidationIssue\)](<#ComplianceScorer.Score>) +- [type Engine](<#Engine>) + - [func NewEngine\(config \*EngineConfig\) \*Engine](<#NewEngine>) + - [func \(e \*Engine\) Validate\(ctx context.Context, card \*agentcard.AgentCard, checkAvailability bool\) \(\*report.ValidationResult, error\)](<#Engine.Validate>) +- [type EngineConfig](<#EngineConfig>) + - [func DefaultEngineConfig\(\) \*EngineConfig](<#DefaultEngineConfig>) +- [type TrustScorer](<#TrustScorer>) + - [func NewTrustScorer\(trustedIssuers \[\]string\) \*TrustScorer](<#NewTrustScorer>) + - [func \(s \*TrustScorer\) Score\(sigResult \*crypto.SignatureVerificationResult\) \(float64, \[\]report.ValidationIssue\)](<#TrustScorer.Score>) +- [type URLValidator](<#URLValidator>) + - [func NewURLValidator\(allowPrivateIPs bool\) \*URLValidator](<#NewURLValidator>) + - [func \(v \*URLValidator\) Validate\(rawURL string, fieldName string\) \[\]report.ValidationIssue](<#URLValidator.Validate>) +- [type ValidationMode](<#ValidationMode>) + + + +## type [AvailabilityScorer]() + +AvailabilityScorer evaluates the operational status of the agent. + +```go +type AvailabilityScorer struct { + // contains filtered or unexported fields +} +``` + + +### func [NewAvailabilityScorer]() + +```go +func NewAvailabilityScorer(timeout time.Duration) *AvailabilityScorer +``` + +NewAvailabilityScorer creates a new AvailabilityScorer. + + +### func \(\*AvailabilityScorer\) [Score]() + +```go +func (s *AvailabilityScorer) Score(ctx context.Context, card *agentcard.AgentCard) report.AvailabilityResult +``` + +Score checks the agent's endpoint and calculates an availability score. + + +## type [ComplianceConfig]() + +ComplianceConfig holds configuration for the ComplianceScorer. + +```go +type ComplianceConfig struct { + AllowPrivateIPs bool +} +``` + + +## type [ComplianceScorer]() + +ComplianceScorer evaluates how well the Agent Card adheres to the A2A specification. + +```go +type ComplianceScorer struct { + // contains filtered or unexported fields +} +``` + + +### func [NewComplianceScorer]() + +```go +func NewComplianceScorer(config *ComplianceConfig) *ComplianceScorer +``` + +NewComplianceScorer creates a new ComplianceScorer. + + +### func \(\*ComplianceScorer\) [Score]() + +```go +func (s *ComplianceScorer) Score(card *agentcard.AgentCard) (float64, []report.ValidationIssue) +``` + +Score calculates the compliance score \(0\-100\) and identifies issues. + + +## type [Engine]() + +Engine is the main entry point for scoring and validation. + +```go +type Engine struct { + // contains filtered or unexported fields +} +``` + + +### func [NewEngine]() + +```go +func NewEngine(config *EngineConfig) *Engine +``` + +NewEngine creates a new scoring Engine with the provided configuration. If config is nil, default configuration is used. + + +### func \(\*Engine\) [Validate]() + +```go +func (e *Engine) Validate(ctx context.Context, card *agentcard.AgentCard, checkAvailability bool) (*report.ValidationResult, error) +``` + +Validate performs a full validation of the Agent Card. + + +## type [EngineConfig]() + +EngineConfig holds configuration for the scoring Engine. + +```go +type EngineConfig struct { + // TrustedIssuers is a list of trusted JWKS URIs or Issuer IDs. + // If empty, all valid signatures are considered "trusted" (low security mode). + TrustedIssuers []string + + // JWKSCacheTTL is the time-to-live for cached JWKS. Default: 1 hour. + JWKSCacheTTL time.Duration + + // HTTPTimeout is the timeout for availability checks. Default: 5 seconds. + HTTPTimeout time.Duration + + // Mode determines the validation strictness. Default: ModeProgressive. + Mode ValidationMode + + // SkipSignatureVerification disables JWS signature verification. + SkipSignatureVerification bool + + // SchemaOnly skips logic and network checks, validating only the JSON structure. + SchemaOnly bool + + // RegistryReady enables additional checks required for registry submission. + RegistryReady bool + + // AllowPrivateIPs allows URLs to resolve to private IP addresses. + AllowPrivateIPs bool +} +``` + + +### func [DefaultEngineConfig]() + +```go +func DefaultEngineConfig() *EngineConfig +``` + +DefaultEngineConfig returns a default configuration. + + +## type [TrustScorer]() + +TrustScorer evaluates the trustworthiness of the Agent Card. + +```go +type TrustScorer struct { + // contains filtered or unexported fields +} +``` + + +### func [NewTrustScorer]() + +```go +func NewTrustScorer(trustedIssuers []string) *TrustScorer +``` + +NewTrustScorer creates a new TrustScorer with optional trusted issuers. + + +### func \(\*TrustScorer\) [Score]() + +```go +func (s *TrustScorer) Score(sigResult *crypto.SignatureVerificationResult) (float64, []report.ValidationIssue) +``` + +Score calculates the trust score \(0\-100\) based on signatures and other factors. + + +## type [URLValidator]() + +URLValidator validates URLs for security and compliance. + +```go +type URLValidator struct { + AllowPrivateIPs bool +} +``` + + +### func [NewURLValidator]() + +```go +func NewURLValidator(allowPrivateIPs bool) *URLValidator +``` + +NewURLValidator creates a new URLValidator. + + +### func \(\*URLValidator\) [Validate]() + +```go +func (v *URLValidator) Validate(rawURL string, fieldName string) []report.ValidationIssue +``` + +Validate checks if a URL is valid and secure. + + +## type [ValidationMode]() + +ValidationMode determines the strictness of the validation. + +```go +type ValidationMode string +``` + + + +```go +const ( + // ModeProgressive is the default mode. Standard checks, allows some warnings. + ModeProgressive ValidationMode = "progressive" + // ModeStrict fails on ANY warning or error. + ModeStrict ValidationMode = "strict" +) +``` + +# simpleguard + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/simpleguard" +``` + +## Index + +- [Constants](<#constants>) +- [Variables](<#variables>) +- [func Middleware\(guard \*SimpleGuard\) func\(http.Handler\) http.Handler](<#Middleware>) +- [func SubjectFromContext\(ctx context.Context\) string](<#SubjectFromContext>) +- [type Claims](<#Claims>) + - [func ClaimsFromContext\(ctx context.Context\) \*Claims](<#ClaimsFromContext>) +- [type Config](<#Config>) +- [type SimpleGuard](<#SimpleGuard>) + - [func New\(cfg Config\) \(\*SimpleGuard, error\)](<#New>) + - [func \(g \*SimpleGuard\) SignOutbound\(claims Claims, body \[\]byte\) \(string, error\)](<#SimpleGuard.SignOutbound>) + - [func \(g \*SimpleGuard\) VerifyInbound\(token string, body \[\]byte\) \(\*Claims, error\)](<#SimpleGuard.VerifyInbound>) + + +## Constants + +Default configuration values. + +```go +const ( + // DefaultMaxTokenAge is the default token validity window (60 seconds). + // This can be overridden via Config.MaxTokenAge. + DefaultMaxTokenAge = 60 * time.Second + + // DefaultClockSkewTolerance is the allowed clock drift between parties (5 seconds). + // This accounts for minor time synchronization differences between systems. + DefaultClockSkewTolerance = 5 * time.Second + + // DefaultMaxBodySize is the maximum request body size for middleware (10MB). + // Requests larger than this will be rejected to prevent memory exhaustion. + DefaultMaxBodySize = 10 << 20 // 10MB +) +``` + +MaxTokenAge is kept for backward compatibility. Use Config.MaxTokenAge instead. Deprecated: Use DefaultMaxTokenAge or Config.MaxTokenAge. + +```go +const MaxTokenAge = 60 * time.Second +``` + +## Variables + + + +```go +var ( + ErrMissingHeader = errors.New("missing X-Capiscio-Badge header") + ErrInvalidToken = errors.New("invalid token format") + ErrTokenExpired = errors.New("token expired") + ErrTokenFuture = errors.New("token issued in the future") + ErrIntegrityFailed = errors.New("integrity check failed (body hash mismatch)") + ErrMissingKeyID = errors.New("missing kid header") + ErrUntrustedKey = errors.New("untrusted key ID") + ErrSignatureInvalid = errors.New("signature verification failed") +) +``` + + +## func [Middleware]() + +```go +func Middleware(guard *SimpleGuard) func(http.Handler) http.Handler +``` + +Middleware creates a net/http middleware for SimpleGuard. + + +## func [SubjectFromContext]() + +```go +func SubjectFromContext(ctx context.Context) string +``` + +SubjectFromContext retrieves the verified subject from the request context. Returns empty string if not found. + + +## type [Claims]() + +Claims represents the JWT claims for SimpleGuard. + +```go +type Claims struct { + Subject string `json:"sub"` + Issuer string `json:"iss"` + IssuedAt int64 `json:"iat"` + Expiry int64 `json:"exp"` + BodyHash string `json:"bh,omitempty"` + MessageID string `json:"jti,omitempty"` +} +``` + + +### func [ClaimsFromContext]() + +```go +func ClaimsFromContext(ctx context.Context) *Claims +``` + +ClaimsFromContext retrieves the verified claims from the request context. Returns nil if not found. + + +## type [Config]() + +Config holds configuration for SimpleGuard. + +```go +type Config struct { + AgentID string + PrivateKey crypto.PrivateKey + PublicKey crypto.PublicKey + KeyID string // kid for the header + DevMode bool // If true, allows self-signed/generated keys + + // MaxTokenAge is the token validity window. Defaults to DefaultMaxTokenAge (60s). + MaxTokenAge time.Duration + + // ClockSkewTolerance is the allowed clock drift. Defaults to DefaultClockSkewTolerance (5s). + ClockSkewTolerance time.Duration + + // MaxBodySize is the maximum request body size for middleware. Defaults to DefaultMaxBodySize (10MB). + MaxBodySize int64 +} +``` + + +## type [SimpleGuard]() + +SimpleGuard handles A2A security enforcement. + +```go +type SimpleGuard struct { + // contains filtered or unexported fields +} +``` + + +### func [New]() + +```go +func New(cfg Config) (*SimpleGuard, error) +``` + +New creates a new SimpleGuard instance. + + +### func \(\*SimpleGuard\) [SignOutbound]() + +```go +func (g *SimpleGuard) SignOutbound(claims Claims, body []byte) (string, error) +``` + +SignOutbound creates a signed JWS for the given payload and body. It enforces iat and exp to prevent backdating. + + +### func \(\*SimpleGuard\) [VerifyInbound]() + +```go +func (g *SimpleGuard) VerifyInbound(token string, body []byte) (*Claims, error) +``` + +VerifyInbound validates a received JWS token. + +# trust + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/trust" +``` + +Package trust provides a local trust store for CA public keys. This enables offline badge verification without network access. See RFC\-002 §13.1. + +## Index + +- [Variables](<#variables>) +- [func DefaultTrustDir\(\) string](<#DefaultTrustDir>) +- [type FileStore](<#FileStore>) + - [func NewFileStore\(dir string\) \(\*FileStore, error\)](<#NewFileStore>) + - [func \(s \*FileStore\) Add\(key jose.JSONWebKey\) error](<#FileStore.Add>) + - [func \(s \*FileStore\) AddFromJWKS\(jwks \*jose.JSONWebKeySet, issuerURL string\) error](<#FileStore.AddFromJWKS>) + - [func \(s \*FileStore\) AddIssuerMapping\(issuerURL, kid string\) error](<#FileStore.AddIssuerMapping>) + - [func \(s \*FileStore\) Get\(kid string\) \(\*jose.JSONWebKey, error\)](<#FileStore.Get>) + - [func \(s \*FileStore\) GetByIssuer\(issuerURL string\) \(\[\]jose.JSONWebKey, error\)](<#FileStore.GetByIssuer>) + - [func \(s \*FileStore\) List\(\) \(\[\]jose.JSONWebKey, error\)](<#FileStore.List>) + - [func \(s \*FileStore\) Remove\(kid string\) error](<#FileStore.Remove>) +- [type Store](<#Store>) + + +## Variables + +Common errors returned by this package. + +```go +var ( + ErrKeyNotFound = errors.New("key not found in trust store") + ErrIssuerNotFound = errors.New("issuer not found in trust store") + ErrInvalidKey = errors.New("invalid key format") +) +``` + + +## func [DefaultTrustDir]() + +```go +func DefaultTrustDir() string +``` + +DefaultTrustDir returns the default trust store directory. + + +## type [FileStore]() + +FileStore implements Store using the filesystem. Default location: \~/.capiscio/trust/ + +```go +type FileStore struct { + // contains filtered or unexported fields +} +``` + + +### func [NewFileStore]() + +```go +func NewFileStore(dir string) (*FileStore, error) +``` + +NewFileStore creates a new file\-based trust store. + + +### func \(\*FileStore\) [Add]() + +```go +func (s *FileStore) Add(key jose.JSONWebKey) error +``` + +Add adds a key to the trust store. + + +### func \(\*FileStore\) [AddFromJWKS]() + +```go +func (s *FileStore) AddFromJWKS(jwks *jose.JSONWebKeySet, issuerURL string) error +``` + +AddFromJWKS adds all keys from a JWKS and optionally maps them to an issuer. + + +### func \(\*FileStore\) [AddIssuerMapping]() + +```go +func (s *FileStore) AddIssuerMapping(issuerURL, kid string) error +``` + +AddIssuerMapping maps an issuer URL to a key kid. + + +### func \(\*FileStore\) [Get]() + +```go +func (s *FileStore) Get(kid string) (*jose.JSONWebKey, error) +``` + +Get retrieves a key by kid. + + +### func \(\*FileStore\) [GetByIssuer]() + +```go +func (s *FileStore) GetByIssuer(issuerURL string) ([]jose.JSONWebKey, error) +``` + +GetByIssuer retrieves all keys for an issuer URL. + + +### func \(\*FileStore\) [List]() + +```go +func (s *FileStore) List() ([]jose.JSONWebKey, error) +``` + +List returns all keys in the store. + + +### func \(\*FileStore\) [Remove]() + +```go +func (s *FileStore) Remove(kid string) error +``` + +Remove removes a key by kid. + + +## type [Store]() + +Store is the interface for a trust store. + +```go +type Store interface { + // Add adds a key to the trust store. + Add(key jose.JSONWebKey) error + + // Get retrieves a key by kid. + Get(kid string) (*jose.JSONWebKey, error) + + // GetByIssuer retrieves all keys for an issuer URL. + GetByIssuer(issuerURL string) ([]jose.JSONWebKey, error) + + // List returns all keys in the store. + List() ([]jose.JSONWebKey, error) + + // Remove removes a key by kid. + Remove(kid string) error + + // AddIssuerMapping maps an issuer URL to a key kid. + AddIssuerMapping(issuerURL, kid string) error +} +``` + +# capisciov1 + +```go +import "github.com/capiscio/capiscio-core/v2/pkg/rpc/gen/capiscio/v1" +``` + +## Index + +- [Constants](<#constants>) +- [Variables](<#variables>) +- [func RegisterBadgeServiceServer\(s grpc.ServiceRegistrar, srv BadgeServiceServer\)](<#RegisterBadgeServiceServer>) +- [func RegisterDIDServiceServer\(s grpc.ServiceRegistrar, srv DIDServiceServer\)](<#RegisterDIDServiceServer>) +- [func RegisterMCPServiceServer\(s grpc.ServiceRegistrar, srv MCPServiceServer\)](<#RegisterMCPServiceServer>) +- [func RegisterRegistryServiceServer\(s grpc.ServiceRegistrar, srv RegistryServiceServer\)](<#RegisterRegistryServiceServer>) +- [func RegisterRevocationServiceServer\(s grpc.ServiceRegistrar, srv RevocationServiceServer\)](<#RegisterRevocationServiceServer>) +- [func RegisterScoringServiceServer\(s grpc.ServiceRegistrar, srv ScoringServiceServer\)](<#RegisterScoringServiceServer>) +- [func RegisterSimpleGuardServiceServer\(s grpc.ServiceRegistrar, srv SimpleGuardServiceServer\)](<#RegisterSimpleGuardServiceServer>) +- [func RegisterTrustStoreServiceServer\(s grpc.ServiceRegistrar, srv TrustStoreServiceServer\)](<#RegisterTrustStoreServiceServer>) +- [type AddKeyRequest](<#AddKeyRequest>) + - [func \(\*AddKeyRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#AddKeyRequest.Descriptor>) + - [func \(x \*AddKeyRequest\) GetDid\(\) string](<#AddKeyRequest.GetDid>) + - [func \(x \*AddKeyRequest\) GetFormat\(\) KeyFormat](<#AddKeyRequest.GetFormat>) + - [func \(x \*AddKeyRequest\) GetMetadata\(\) map\[string\]string](<#AddKeyRequest.GetMetadata>) + - [func \(x \*AddKeyRequest\) GetPublicKey\(\) \[\]byte](<#AddKeyRequest.GetPublicKey>) + - [func \(\*AddKeyRequest\) ProtoMessage\(\)](<#AddKeyRequest.ProtoMessage>) + - [func \(x \*AddKeyRequest\) ProtoReflect\(\) protoreflect.Message](<#AddKeyRequest.ProtoReflect>) + - [func \(x \*AddKeyRequest\) Reset\(\)](<#AddKeyRequest.Reset>) + - [func \(x \*AddKeyRequest\) String\(\) string](<#AddKeyRequest.String>) +- [type AddKeyResponse](<#AddKeyResponse>) + - [func \(\*AddKeyResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#AddKeyResponse.Descriptor>) + - [func \(x \*AddKeyResponse\) GetErrorMessage\(\) string](<#AddKeyResponse.GetErrorMessage>) + - [func \(x \*AddKeyResponse\) GetKeyId\(\) string](<#AddKeyResponse.GetKeyId>) + - [func \(\*AddKeyResponse\) ProtoMessage\(\)](<#AddKeyResponse.ProtoMessage>) + - [func \(x \*AddKeyResponse\) ProtoReflect\(\) protoreflect.Message](<#AddKeyResponse.ProtoReflect>) + - [func \(x \*AddKeyResponse\) Reset\(\)](<#AddKeyResponse.Reset>) + - [func \(x \*AddKeyResponse\) String\(\) string](<#AddKeyResponse.String>) +- [type AgentStatus](<#AgentStatus>) + - [func \(AgentStatus\) Descriptor\(\) protoreflect.EnumDescriptor](<#AgentStatus.Descriptor>) + - [func \(x AgentStatus\) Enum\(\) \*AgentStatus](<#AgentStatus.Enum>) + - [func \(AgentStatus\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#AgentStatus.EnumDescriptor>) + - [func \(x AgentStatus\) Number\(\) protoreflect.EnumNumber](<#AgentStatus.Number>) + - [func \(x AgentStatus\) String\(\) string](<#AgentStatus.String>) + - [func \(AgentStatus\) Type\(\) protoreflect.EnumType](<#AgentStatus.Type>) +- [type AggregateScoresRequest](<#AggregateScoresRequest>) + - [func \(\*AggregateScoresRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#AggregateScoresRequest.Descriptor>) + - [func \(x \*AggregateScoresRequest\) GetAggregationMethod\(\) string](<#AggregateScoresRequest.GetAggregationMethod>) + - [func \(x \*AggregateScoresRequest\) GetResults\(\) \[\]\*ScoringResult](<#AggregateScoresRequest.GetResults>) + - [func \(\*AggregateScoresRequest\) ProtoMessage\(\)](<#AggregateScoresRequest.ProtoMessage>) + - [func \(x \*AggregateScoresRequest\) ProtoReflect\(\) protoreflect.Message](<#AggregateScoresRequest.ProtoReflect>) + - [func \(x \*AggregateScoresRequest\) Reset\(\)](<#AggregateScoresRequest.Reset>) + - [func \(x \*AggregateScoresRequest\) String\(\) string](<#AggregateScoresRequest.String>) +- [type AggregateScoresResponse](<#AggregateScoresResponse>) + - [func \(\*AggregateScoresResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#AggregateScoresResponse.Descriptor>) + - [func \(x \*AggregateScoresResponse\) GetAggregateRating\(\) Rating](<#AggregateScoresResponse.GetAggregateRating>) + - [func \(x \*AggregateScoresResponse\) GetAggregateScore\(\) float64](<#AggregateScoresResponse.GetAggregateScore>) + - [func \(x \*AggregateScoresResponse\) GetCategoryAggregates\(\) map\[string\]float64](<#AggregateScoresResponse.GetCategoryAggregates>) + - [func \(\*AggregateScoresResponse\) ProtoMessage\(\)](<#AggregateScoresResponse.ProtoMessage>) + - [func \(x \*AggregateScoresResponse\) ProtoReflect\(\) protoreflect.Message](<#AggregateScoresResponse.ProtoReflect>) + - [func \(x \*AggregateScoresResponse\) Reset\(\)](<#AggregateScoresResponse.Reset>) + - [func \(x \*AggregateScoresResponse\) String\(\) string](<#AggregateScoresResponse.String>) +- [type BadgeClaims](<#BadgeClaims>) + - [func \(\*BadgeClaims\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#BadgeClaims.Descriptor>) + - [func \(x \*BadgeClaims\) GetAgentName\(\) string](<#BadgeClaims.GetAgentName>) + - [func \(x \*BadgeClaims\) GetAud\(\) \[\]string](<#BadgeClaims.GetAud>) + - [func \(x \*BadgeClaims\) GetDomain\(\) string](<#BadgeClaims.GetDomain>) + - [func \(x \*BadgeClaims\) GetExp\(\) int64](<#BadgeClaims.GetExp>) + - [func \(x \*BadgeClaims\) GetIat\(\) int64](<#BadgeClaims.GetIat>) + - [func \(x \*BadgeClaims\) GetIss\(\) string](<#BadgeClaims.GetIss>) + - [func \(x \*BadgeClaims\) GetJti\(\) string](<#BadgeClaims.GetJti>) + - [func \(x \*BadgeClaims\) GetNbf\(\) int64](<#BadgeClaims.GetNbf>) + - [func \(x \*BadgeClaims\) GetScope\(\) string](<#BadgeClaims.GetScope>) + - [func \(x \*BadgeClaims\) GetSub\(\) string](<#BadgeClaims.GetSub>) + - [func \(x \*BadgeClaims\) GetTrustLevel\(\) TrustLevel](<#BadgeClaims.GetTrustLevel>) + - [func \(\*BadgeClaims\) ProtoMessage\(\)](<#BadgeClaims.ProtoMessage>) + - [func \(x \*BadgeClaims\) ProtoReflect\(\) protoreflect.Message](<#BadgeClaims.ProtoReflect>) + - [func \(x \*BadgeClaims\) Reset\(\)](<#BadgeClaims.Reset>) + - [func \(x \*BadgeClaims\) String\(\) string](<#BadgeClaims.String>) +- [type BadgeServiceClient](<#BadgeServiceClient>) + - [func NewBadgeServiceClient\(cc grpc.ClientConnInterface\) BadgeServiceClient](<#NewBadgeServiceClient>) +- [type BadgeServiceServer](<#BadgeServiceServer>) +- [type BadgeService\_StartKeeperClient](<#BadgeService_StartKeeperClient>) +- [type BadgeService\_StartKeeperServer](<#BadgeService_StartKeeperServer>) +- [type CategoryScore](<#CategoryScore>) + - [func \(\*CategoryScore\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#CategoryScore.Descriptor>) + - [func \(x \*CategoryScore\) GetCategory\(\) ScoreCategory](<#CategoryScore.GetCategory>) + - [func \(x \*CategoryScore\) GetResults\(\) \[\]\*RuleResult](<#CategoryScore.GetResults>) + - [func \(x \*CategoryScore\) GetRulesFailed\(\) int32](<#CategoryScore.GetRulesFailed>) + - [func \(x \*CategoryScore\) GetRulesPassed\(\) int32](<#CategoryScore.GetRulesPassed>) + - [func \(x \*CategoryScore\) GetScore\(\) float64](<#CategoryScore.GetScore>) + - [func \(\*CategoryScore\) ProtoMessage\(\)](<#CategoryScore.ProtoMessage>) + - [func \(x \*CategoryScore\) ProtoReflect\(\) protoreflect.Message](<#CategoryScore.ProtoReflect>) + - [func \(x \*CategoryScore\) Reset\(\)](<#CategoryScore.Reset>) + - [func \(x \*CategoryScore\) String\(\) string](<#CategoryScore.String>) +- [type ClearCacheRequest](<#ClearCacheRequest>) + - [func \(\*ClearCacheRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ClearCacheRequest.Descriptor>) + - [func \(x \*ClearCacheRequest\) GetSourceFilter\(\) string](<#ClearCacheRequest.GetSourceFilter>) + - [func \(\*ClearCacheRequest\) ProtoMessage\(\)](<#ClearCacheRequest.ProtoMessage>) + - [func \(x \*ClearCacheRequest\) ProtoReflect\(\) protoreflect.Message](<#ClearCacheRequest.ProtoReflect>) + - [func \(x \*ClearCacheRequest\) Reset\(\)](<#ClearCacheRequest.Reset>) + - [func \(x \*ClearCacheRequest\) String\(\) string](<#ClearCacheRequest.String>) +- [type ClearCacheResponse](<#ClearCacheResponse>) + - [func \(\*ClearCacheResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ClearCacheResponse.Descriptor>) + - [func \(x \*ClearCacheResponse\) GetEntriesCleared\(\) int32](<#ClearCacheResponse.GetEntriesCleared>) + - [func \(\*ClearCacheResponse\) ProtoMessage\(\)](<#ClearCacheResponse.ProtoMessage>) + - [func \(x \*ClearCacheResponse\) ProtoReflect\(\) protoreflect.Message](<#ClearCacheResponse.ProtoReflect>) + - [func \(x \*ClearCacheResponse\) Reset\(\)](<#ClearCacheResponse.Reset>) + - [func \(x \*ClearCacheResponse\) String\(\) string](<#ClearCacheResponse.String>) +- [type ClearKeysRequest](<#ClearKeysRequest>) + - [func \(\*ClearKeysRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ClearKeysRequest.Descriptor>) + - [func \(x \*ClearKeysRequest\) GetConfirm\(\) bool](<#ClearKeysRequest.GetConfirm>) + - [func \(\*ClearKeysRequest\) ProtoMessage\(\)](<#ClearKeysRequest.ProtoMessage>) + - [func \(x \*ClearKeysRequest\) ProtoReflect\(\) protoreflect.Message](<#ClearKeysRequest.ProtoReflect>) + - [func \(x \*ClearKeysRequest\) Reset\(\)](<#ClearKeysRequest.Reset>) + - [func \(x \*ClearKeysRequest\) String\(\) string](<#ClearKeysRequest.String>) +- [type ClearKeysResponse](<#ClearKeysResponse>) + - [func \(\*ClearKeysResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ClearKeysResponse.Descriptor>) + - [func \(x \*ClearKeysResponse\) GetKeysCleared\(\) int32](<#ClearKeysResponse.GetKeysCleared>) + - [func \(\*ClearKeysResponse\) ProtoMessage\(\)](<#ClearKeysResponse.ProtoMessage>) + - [func \(x \*ClearKeysResponse\) ProtoReflect\(\) protoreflect.Message](<#ClearKeysResponse.ProtoReflect>) + - [func \(x \*ClearKeysResponse\) Reset\(\)](<#ClearKeysResponse.Reset>) + - [func \(x \*ClearKeysResponse\) String\(\) string](<#ClearKeysResponse.String>) +- [type CreateDVOrderRequest](<#CreateDVOrderRequest>) + - [func \(\*CreateDVOrderRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#CreateDVOrderRequest.Descriptor>) + - [func \(x \*CreateDVOrderRequest\) GetCaUrl\(\) string](<#CreateDVOrderRequest.GetCaUrl>) + - [func \(x \*CreateDVOrderRequest\) GetChallengeType\(\) string](<#CreateDVOrderRequest.GetChallengeType>) + - [func \(x \*CreateDVOrderRequest\) GetDomain\(\) string](<#CreateDVOrderRequest.GetDomain>) + - [func \(x \*CreateDVOrderRequest\) GetJwk\(\) string](<#CreateDVOrderRequest.GetJwk>) + - [func \(\*CreateDVOrderRequest\) ProtoMessage\(\)](<#CreateDVOrderRequest.ProtoMessage>) + - [func \(x \*CreateDVOrderRequest\) ProtoReflect\(\) protoreflect.Message](<#CreateDVOrderRequest.ProtoReflect>) + - [func \(x \*CreateDVOrderRequest\) Reset\(\)](<#CreateDVOrderRequest.Reset>) + - [func \(x \*CreateDVOrderRequest\) String\(\) string](<#CreateDVOrderRequest.String>) +- [type CreateDVOrderResponse](<#CreateDVOrderResponse>) + - [func \(\*CreateDVOrderResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#CreateDVOrderResponse.Descriptor>) + - [func \(x \*CreateDVOrderResponse\) GetChallengeToken\(\) string](<#CreateDVOrderResponse.GetChallengeToken>) + - [func \(x \*CreateDVOrderResponse\) GetChallengeType\(\) string](<#CreateDVOrderResponse.GetChallengeType>) + - [func \(x \*CreateDVOrderResponse\) GetDnsRecord\(\) string](<#CreateDVOrderResponse.GetDnsRecord>) + - [func \(x \*CreateDVOrderResponse\) GetDomain\(\) string](<#CreateDVOrderResponse.GetDomain>) + - [func \(x \*CreateDVOrderResponse\) GetError\(\) string](<#CreateDVOrderResponse.GetError>) + - [func \(x \*CreateDVOrderResponse\) GetErrorCode\(\) string](<#CreateDVOrderResponse.GetErrorCode>) + - [func \(x \*CreateDVOrderResponse\) GetExpiresAt\(\) int64](<#CreateDVOrderResponse.GetExpiresAt>) + - [func \(x \*CreateDVOrderResponse\) GetOrderId\(\) string](<#CreateDVOrderResponse.GetOrderId>) + - [func \(x \*CreateDVOrderResponse\) GetStatus\(\) string](<#CreateDVOrderResponse.GetStatus>) + - [func \(x \*CreateDVOrderResponse\) GetSuccess\(\) bool](<#CreateDVOrderResponse.GetSuccess>) + - [func \(x \*CreateDVOrderResponse\) GetValidationUrl\(\) string](<#CreateDVOrderResponse.GetValidationUrl>) + - [func \(\*CreateDVOrderResponse\) ProtoMessage\(\)](<#CreateDVOrderResponse.ProtoMessage>) + - [func \(x \*CreateDVOrderResponse\) ProtoReflect\(\) protoreflect.Message](<#CreateDVOrderResponse.ProtoReflect>) + - [func \(x \*CreateDVOrderResponse\) Reset\(\)](<#CreateDVOrderResponse.Reset>) + - [func \(x \*CreateDVOrderResponse\) String\(\) string](<#CreateDVOrderResponse.String>) +- [type DID](<#DID>) + - [func \(\*DID\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#DID.Descriptor>) + - [func \(x \*DID\) GetDomain\(\) string](<#DID.GetDomain>) + - [func \(x \*DID\) GetFragment\(\) string](<#DID.GetFragment>) + - [func \(x \*DID\) GetMethod\(\) string](<#DID.GetMethod>) + - [func \(x \*DID\) GetPath\(\) \[\]string](<#DID.GetPath>) + - [func \(x \*DID\) GetRaw\(\) string](<#DID.GetRaw>) + - [func \(\*DID\) ProtoMessage\(\)](<#DID.ProtoMessage>) + - [func \(x \*DID\) ProtoReflect\(\) protoreflect.Message](<#DID.ProtoReflect>) + - [func \(x \*DID\) Reset\(\)](<#DID.Reset>) + - [func \(x \*DID\) String\(\) string](<#DID.String>) +- [type DIDServiceClient](<#DIDServiceClient>) + - [func NewDIDServiceClient\(cc grpc.ClientConnInterface\) DIDServiceClient](<#NewDIDServiceClient>) +- [type DIDServiceServer](<#DIDServiceServer>) +- [type DeregisterAgentRequest](<#DeregisterAgentRequest>) + - [func \(\*DeregisterAgentRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#DeregisterAgentRequest.Descriptor>) + - [func \(x \*DeregisterAgentRequest\) GetDid\(\) string](<#DeregisterAgentRequest.GetDid>) + - [func \(x \*DeregisterAgentRequest\) GetReason\(\) string](<#DeregisterAgentRequest.GetReason>) + - [func \(\*DeregisterAgentRequest\) ProtoMessage\(\)](<#DeregisterAgentRequest.ProtoMessage>) + - [func \(x \*DeregisterAgentRequest\) ProtoReflect\(\) protoreflect.Message](<#DeregisterAgentRequest.ProtoReflect>) + - [func \(x \*DeregisterAgentRequest\) Reset\(\)](<#DeregisterAgentRequest.Reset>) + - [func \(x \*DeregisterAgentRequest\) String\(\) string](<#DeregisterAgentRequest.String>) +- [type DeregisterAgentResponse](<#DeregisterAgentResponse>) + - [func \(\*DeregisterAgentResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#DeregisterAgentResponse.Descriptor>) + - [func \(x \*DeregisterAgentResponse\) GetErrorMessage\(\) string](<#DeregisterAgentResponse.GetErrorMessage>) + - [func \(x \*DeregisterAgentResponse\) GetSuccess\(\) bool](<#DeregisterAgentResponse.GetSuccess>) + - [func \(\*DeregisterAgentResponse\) ProtoMessage\(\)](<#DeregisterAgentResponse.ProtoMessage>) + - [func \(x \*DeregisterAgentResponse\) ProtoReflect\(\) protoreflect.Message](<#DeregisterAgentResponse.ProtoReflect>) + - [func \(x \*DeregisterAgentResponse\) Reset\(\)](<#DeregisterAgentResponse.Reset>) + - [func \(x \*DeregisterAgentResponse\) String\(\) string](<#DeregisterAgentResponse.String>) +- [type DocumentURLRequest](<#DocumentURLRequest>) + - [func \(\*DocumentURLRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#DocumentURLRequest.Descriptor>) + - [func \(x \*DocumentURLRequest\) GetDid\(\) string](<#DocumentURLRequest.GetDid>) + - [func \(\*DocumentURLRequest\) ProtoMessage\(\)](<#DocumentURLRequest.ProtoMessage>) + - [func \(x \*DocumentURLRequest\) ProtoReflect\(\) protoreflect.Message](<#DocumentURLRequest.ProtoReflect>) + - [func \(x \*DocumentURLRequest\) Reset\(\)](<#DocumentURLRequest.Reset>) + - [func \(x \*DocumentURLRequest\) String\(\) string](<#DocumentURLRequest.String>) +- [type DocumentURLResponse](<#DocumentURLResponse>) + - [func \(\*DocumentURLResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#DocumentURLResponse.Descriptor>) + - [func \(x \*DocumentURLResponse\) GetErrorMessage\(\) string](<#DocumentURLResponse.GetErrorMessage>) + - [func \(x \*DocumentURLResponse\) GetUrl\(\) string](<#DocumentURLResponse.GetUrl>) + - [func \(\*DocumentURLResponse\) ProtoMessage\(\)](<#DocumentURLResponse.ProtoMessage>) + - [func \(x \*DocumentURLResponse\) ProtoReflect\(\) protoreflect.Message](<#DocumentURLResponse.ProtoReflect>) + - [func \(x \*DocumentURLResponse\) Reset\(\)](<#DocumentURLResponse.Reset>) + - [func \(x \*DocumentURLResponse\) String\(\) string](<#DocumentURLResponse.String>) +- [type Duration](<#Duration>) + - [func \(\*Duration\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#Duration.Descriptor>) + - [func \(x \*Duration\) GetSeconds\(\) int64](<#Duration.GetSeconds>) + - [func \(\*Duration\) ProtoMessage\(\)](<#Duration.ProtoMessage>) + - [func \(x \*Duration\) ProtoReflect\(\) protoreflect.Message](<#Duration.ProtoReflect>) + - [func \(x \*Duration\) Reset\(\)](<#Duration.Reset>) + - [func \(x \*Duration\) String\(\) string](<#Duration.String>) +- [type ErrorDetail](<#ErrorDetail>) + - [func \(\*ErrorDetail\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ErrorDetail.Descriptor>) + - [func \(x \*ErrorDetail\) GetCode\(\) string](<#ErrorDetail.GetCode>) + - [func \(x \*ErrorDetail\) GetMessage\(\) string](<#ErrorDetail.GetMessage>) + - [func \(x \*ErrorDetail\) GetMetadata\(\) map\[string\]string](<#ErrorDetail.GetMetadata>) + - [func \(\*ErrorDetail\) ProtoMessage\(\)](<#ErrorDetail.ProtoMessage>) + - [func \(x \*ErrorDetail\) ProtoReflect\(\) protoreflect.Message](<#ErrorDetail.ProtoReflect>) + - [func \(x \*ErrorDetail\) Reset\(\)](<#ErrorDetail.Reset>) + - [func \(x \*ErrorDetail\) String\(\) string](<#ErrorDetail.String>) +- [type EvaluateConfig](<#EvaluateConfig>) + - [func \(\*EvaluateConfig\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#EvaluateConfig.Descriptor>) + - [func \(x \*EvaluateConfig\) GetAcceptLevelZero\(\) bool](<#EvaluateConfig.GetAcceptLevelZero>) + - [func \(x \*EvaluateConfig\) GetAllowedTools\(\) \[\]string](<#EvaluateConfig.GetAllowedTools>) + - [func \(x \*EvaluateConfig\) GetMinTrustLevel\(\) int32](<#EvaluateConfig.GetMinTrustLevel>) + - [func \(x \*EvaluateConfig\) GetTrustedIssuers\(\) \[\]string](<#EvaluateConfig.GetTrustedIssuers>) + - [func \(\*EvaluateConfig\) ProtoMessage\(\)](<#EvaluateConfig.ProtoMessage>) + - [func \(x \*EvaluateConfig\) ProtoReflect\(\) protoreflect.Message](<#EvaluateConfig.ProtoReflect>) + - [func \(x \*EvaluateConfig\) Reset\(\)](<#EvaluateConfig.Reset>) + - [func \(x \*EvaluateConfig\) String\(\) string](<#EvaluateConfig.String>) +- [type EvaluateToolAccessRequest](<#EvaluateToolAccessRequest>) + - [func \(\*EvaluateToolAccessRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#EvaluateToolAccessRequest.Descriptor>) + - [func \(x \*EvaluateToolAccessRequest\) GetApiKey\(\) string](<#EvaluateToolAccessRequest.GetApiKey>) + - [func \(x \*EvaluateToolAccessRequest\) GetBadgeJws\(\) string](<#EvaluateToolAccessRequest.GetBadgeJws>) + - [func \(x \*EvaluateToolAccessRequest\) GetCallerCredential\(\) isEvaluateToolAccessRequest\_CallerCredential](<#EvaluateToolAccessRequest.GetCallerCredential>) + - [func \(x \*EvaluateToolAccessRequest\) GetCapabilityClass\(\) string](<#EvaluateToolAccessRequest.GetCapabilityClass>) + - [func \(x \*EvaluateToolAccessRequest\) GetConfig\(\) \*EvaluateConfig](<#EvaluateToolAccessRequest.GetConfig>) + - [func \(x \*EvaluateToolAccessRequest\) GetConstraintsJson\(\) string](<#EvaluateToolAccessRequest.GetConstraintsJson>) + - [func \(x \*EvaluateToolAccessRequest\) GetDelegationDepth\(\) int32](<#EvaluateToolAccessRequest.GetDelegationDepth>) + - [func \(x \*EvaluateToolAccessRequest\) GetEnforcementMode\(\) string](<#EvaluateToolAccessRequest.GetEnforcementMode>) + - [func \(x \*EvaluateToolAccessRequest\) GetEnvelopeId\(\) string](<#EvaluateToolAccessRequest.GetEnvelopeId>) + - [func \(x \*EvaluateToolAccessRequest\) GetParamsHash\(\) string](<#EvaluateToolAccessRequest.GetParamsHash>) + - [func \(x \*EvaluateToolAccessRequest\) GetParentConstraintsJson\(\) string](<#EvaluateToolAccessRequest.GetParentConstraintsJson>) + - [func \(x \*EvaluateToolAccessRequest\) GetPolicyVersion\(\) string](<#EvaluateToolAccessRequest.GetPolicyVersion>) + - [func \(x \*EvaluateToolAccessRequest\) GetServerOrigin\(\) string](<#EvaluateToolAccessRequest.GetServerOrigin>) + - [func \(x \*EvaluateToolAccessRequest\) GetToolName\(\) string](<#EvaluateToolAccessRequest.GetToolName>) + - [func \(\*EvaluateToolAccessRequest\) ProtoMessage\(\)](<#EvaluateToolAccessRequest.ProtoMessage>) + - [func \(x \*EvaluateToolAccessRequest\) ProtoReflect\(\) protoreflect.Message](<#EvaluateToolAccessRequest.ProtoReflect>) + - [func \(x \*EvaluateToolAccessRequest\) Reset\(\)](<#EvaluateToolAccessRequest.Reset>) + - [func \(x \*EvaluateToolAccessRequest\) String\(\) string](<#EvaluateToolAccessRequest.String>) +- [type EvaluateToolAccessRequest\_ApiKey](<#EvaluateToolAccessRequest_ApiKey>) +- [type EvaluateToolAccessRequest\_BadgeJws](<#EvaluateToolAccessRequest_BadgeJws>) +- [type EvaluateToolAccessResponse](<#EvaluateToolAccessResponse>) + - [func \(\*EvaluateToolAccessResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#EvaluateToolAccessResponse.Descriptor>) + - [func \(x \*EvaluateToolAccessResponse\) GetAgentDid\(\) string](<#EvaluateToolAccessResponse.GetAgentDid>) + - [func \(x \*EvaluateToolAccessResponse\) GetAuthLevel\(\) MCPAuthLevel](<#EvaluateToolAccessResponse.GetAuthLevel>) + - [func \(x \*EvaluateToolAccessResponse\) GetBadgeJti\(\) string](<#EvaluateToolAccessResponse.GetBadgeJti>) + - [func \(x \*EvaluateToolAccessResponse\) GetDecision\(\) MCPDecision](<#EvaluateToolAccessResponse.GetDecision>) + - [func \(x \*EvaluateToolAccessResponse\) GetDenyDetail\(\) string](<#EvaluateToolAccessResponse.GetDenyDetail>) + - [func \(x \*EvaluateToolAccessResponse\) GetDenyReason\(\) MCPDenyReason](<#EvaluateToolAccessResponse.GetDenyReason>) + - [func \(x \*EvaluateToolAccessResponse\) GetEnforcementMode\(\) string](<#EvaluateToolAccessResponse.GetEnforcementMode>) + - [func \(x \*EvaluateToolAccessResponse\) GetEvidenceId\(\) string](<#EvaluateToolAccessResponse.GetEvidenceId>) + - [func \(x \*EvaluateToolAccessResponse\) GetEvidenceJson\(\) string](<#EvaluateToolAccessResponse.GetEvidenceJson>) + - [func \(x \*EvaluateToolAccessResponse\) GetObligations\(\) \[\]\*MCPObligation](<#EvaluateToolAccessResponse.GetObligations>) + - [func \(x \*EvaluateToolAccessResponse\) GetPolicyDecision\(\) string](<#EvaluateToolAccessResponse.GetPolicyDecision>) + - [func \(x \*EvaluateToolAccessResponse\) GetPolicyDecisionId\(\) string](<#EvaluateToolAccessResponse.GetPolicyDecisionId>) + - [func \(x \*EvaluateToolAccessResponse\) GetTimestamp\(\) \*timestamppb.Timestamp](<#EvaluateToolAccessResponse.GetTimestamp>) + - [func \(x \*EvaluateToolAccessResponse\) GetTrustLevel\(\) int32](<#EvaluateToolAccessResponse.GetTrustLevel>) + - [func \(\*EvaluateToolAccessResponse\) ProtoMessage\(\)](<#EvaluateToolAccessResponse.ProtoMessage>) + - [func \(x \*EvaluateToolAccessResponse\) ProtoReflect\(\) protoreflect.Message](<#EvaluateToolAccessResponse.ProtoReflect>) + - [func \(x \*EvaluateToolAccessResponse\) Reset\(\)](<#EvaluateToolAccessResponse.Reset>) + - [func \(x \*EvaluateToolAccessResponse\) String\(\) string](<#EvaluateToolAccessResponse.String>) +- [type ExportKeyRequest](<#ExportKeyRequest>) + - [func \(\*ExportKeyRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ExportKeyRequest.Descriptor>) + - [func \(x \*ExportKeyRequest\) GetFilePath\(\) string](<#ExportKeyRequest.GetFilePath>) + - [func \(x \*ExportKeyRequest\) GetFormat\(\) KeyFormat](<#ExportKeyRequest.GetFormat>) + - [func \(x \*ExportKeyRequest\) GetIncludePrivate\(\) bool](<#ExportKeyRequest.GetIncludePrivate>) + - [func \(x \*ExportKeyRequest\) GetKeyId\(\) string](<#ExportKeyRequest.GetKeyId>) + - [func \(x \*ExportKeyRequest\) GetPassphrase\(\) string](<#ExportKeyRequest.GetPassphrase>) + - [func \(\*ExportKeyRequest\) ProtoMessage\(\)](<#ExportKeyRequest.ProtoMessage>) + - [func \(x \*ExportKeyRequest\) ProtoReflect\(\) protoreflect.Message](<#ExportKeyRequest.ProtoReflect>) + - [func \(x \*ExportKeyRequest\) Reset\(\)](<#ExportKeyRequest.Reset>) + - [func \(x \*ExportKeyRequest\) String\(\) string](<#ExportKeyRequest.String>) +- [type ExportKeyResponse](<#ExportKeyResponse>) + - [func \(\*ExportKeyResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ExportKeyResponse.Descriptor>) + - [func \(x \*ExportKeyResponse\) GetErrorMessage\(\) string](<#ExportKeyResponse.GetErrorMessage>) + - [func \(x \*ExportKeyResponse\) GetFilePath\(\) string](<#ExportKeyResponse.GetFilePath>) + - [func \(\*ExportKeyResponse\) ProtoMessage\(\)](<#ExportKeyResponse.ProtoMessage>) + - [func \(x \*ExportKeyResponse\) ProtoReflect\(\) protoreflect.Message](<#ExportKeyResponse.ProtoReflect>) + - [func \(x \*ExportKeyResponse\) Reset\(\)](<#ExportKeyResponse.Reset>) + - [func \(x \*ExportKeyResponse\) String\(\) string](<#ExportKeyResponse.String>) +- [type ExportToDirectoryRequest](<#ExportToDirectoryRequest>) + - [func \(\*ExportToDirectoryRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ExportToDirectoryRequest.Descriptor>) + - [func \(x \*ExportToDirectoryRequest\) GetDirectoryPath\(\) string](<#ExportToDirectoryRequest.GetDirectoryPath>) + - [func \(x \*ExportToDirectoryRequest\) GetFormat\(\) KeyFormat](<#ExportToDirectoryRequest.GetFormat>) + - [func \(\*ExportToDirectoryRequest\) ProtoMessage\(\)](<#ExportToDirectoryRequest.ProtoMessage>) + - [func \(x \*ExportToDirectoryRequest\) ProtoReflect\(\) protoreflect.Message](<#ExportToDirectoryRequest.ProtoReflect>) + - [func \(x \*ExportToDirectoryRequest\) Reset\(\)](<#ExportToDirectoryRequest.Reset>) + - [func \(x \*ExportToDirectoryRequest\) String\(\) string](<#ExportToDirectoryRequest.String>) +- [type ExportToDirectoryResponse](<#ExportToDirectoryResponse>) + - [func \(\*ExportToDirectoryResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ExportToDirectoryResponse.Descriptor>) + - [func \(x \*ExportToDirectoryResponse\) GetErrorMessage\(\) string](<#ExportToDirectoryResponse.GetErrorMessage>) + - [func \(x \*ExportToDirectoryResponse\) GetKeysExported\(\) int32](<#ExportToDirectoryResponse.GetKeysExported>) + - [func \(\*ExportToDirectoryResponse\) ProtoMessage\(\)](<#ExportToDirectoryResponse.ProtoMessage>) + - [func \(x \*ExportToDirectoryResponse\) ProtoReflect\(\) protoreflect.Message](<#ExportToDirectoryResponse.ProtoReflect>) + - [func \(x \*ExportToDirectoryResponse\) Reset\(\)](<#ExportToDirectoryResponse.Reset>) + - [func \(x \*ExportToDirectoryResponse\) String\(\) string](<#ExportToDirectoryResponse.String>) +- [type FetchRevocationListRequest](<#FetchRevocationListRequest>) + - [func \(\*FetchRevocationListRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#FetchRevocationListRequest.Descriptor>) + - [func \(x \*FetchRevocationListRequest\) GetTimeout\(\) \*Duration](<#FetchRevocationListRequest.GetTimeout>) + - [func \(x \*FetchRevocationListRequest\) GetUrl\(\) string](<#FetchRevocationListRequest.GetUrl>) + - [func \(\*FetchRevocationListRequest\) ProtoMessage\(\)](<#FetchRevocationListRequest.ProtoMessage>) + - [func \(x \*FetchRevocationListRequest\) ProtoReflect\(\) protoreflect.Message](<#FetchRevocationListRequest.ProtoReflect>) + - [func \(x \*FetchRevocationListRequest\) Reset\(\)](<#FetchRevocationListRequest.Reset>) + - [func \(x \*FetchRevocationListRequest\) String\(\) string](<#FetchRevocationListRequest.String>) +- [type FetchRevocationListResponse](<#FetchRevocationListResponse>) + - [func \(\*FetchRevocationListResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#FetchRevocationListResponse.Descriptor>) + - [func \(x \*FetchRevocationListResponse\) GetEntriesAdded\(\) int32](<#FetchRevocationListResponse.GetEntriesAdded>) + - [func \(x \*FetchRevocationListResponse\) GetEntriesUpdated\(\) int32](<#FetchRevocationListResponse.GetEntriesUpdated>) + - [func \(x \*FetchRevocationListResponse\) GetErrorMessage\(\) string](<#FetchRevocationListResponse.GetErrorMessage>) + - [func \(x \*FetchRevocationListResponse\) GetFetchedAt\(\) \*Timestamp](<#FetchRevocationListResponse.GetFetchedAt>) + - [func \(\*FetchRevocationListResponse\) ProtoMessage\(\)](<#FetchRevocationListResponse.ProtoMessage>) + - [func \(x \*FetchRevocationListResponse\) ProtoReflect\(\) protoreflect.Message](<#FetchRevocationListResponse.ProtoReflect>) + - [func \(x \*FetchRevocationListResponse\) Reset\(\)](<#FetchRevocationListResponse.Reset>) + - [func \(x \*FetchRevocationListResponse\) String\(\) string](<#FetchRevocationListResponse.String>) +- [type FinalizeDVOrderRequest](<#FinalizeDVOrderRequest>) + - [func \(\*FinalizeDVOrderRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#FinalizeDVOrderRequest.Descriptor>) + - [func \(x \*FinalizeDVOrderRequest\) GetCaUrl\(\) string](<#FinalizeDVOrderRequest.GetCaUrl>) + - [func \(x \*FinalizeDVOrderRequest\) GetOrderId\(\) string](<#FinalizeDVOrderRequest.GetOrderId>) + - [func \(\*FinalizeDVOrderRequest\) ProtoMessage\(\)](<#FinalizeDVOrderRequest.ProtoMessage>) + - [func \(x \*FinalizeDVOrderRequest\) ProtoReflect\(\) protoreflect.Message](<#FinalizeDVOrderRequest.ProtoReflect>) + - [func \(x \*FinalizeDVOrderRequest\) Reset\(\)](<#FinalizeDVOrderRequest.Reset>) + - [func \(x \*FinalizeDVOrderRequest\) String\(\) string](<#FinalizeDVOrderRequest.String>) +- [type FinalizeDVOrderResponse](<#FinalizeDVOrderResponse>) + - [func \(\*FinalizeDVOrderResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#FinalizeDVOrderResponse.Descriptor>) + - [func \(x \*FinalizeDVOrderResponse\) GetError\(\) string](<#FinalizeDVOrderResponse.GetError>) + - [func \(x \*FinalizeDVOrderResponse\) GetErrorCode\(\) string](<#FinalizeDVOrderResponse.GetErrorCode>) + - [func \(x \*FinalizeDVOrderResponse\) GetExpiresAt\(\) int64](<#FinalizeDVOrderResponse.GetExpiresAt>) + - [func \(x \*FinalizeDVOrderResponse\) GetGrant\(\) string](<#FinalizeDVOrderResponse.GetGrant>) + - [func \(x \*FinalizeDVOrderResponse\) GetSuccess\(\) bool](<#FinalizeDVOrderResponse.GetSuccess>) + - [func \(\*FinalizeDVOrderResponse\) ProtoMessage\(\)](<#FinalizeDVOrderResponse.ProtoMessage>) + - [func \(x \*FinalizeDVOrderResponse\) ProtoReflect\(\) protoreflect.Message](<#FinalizeDVOrderResponse.ProtoReflect>) + - [func \(x \*FinalizeDVOrderResponse\) Reset\(\)](<#FinalizeDVOrderResponse.Reset>) + - [func \(x \*FinalizeDVOrderResponse\) String\(\) string](<#FinalizeDVOrderResponse.String>) +- [type GenerateKeyPairRequest](<#GenerateKeyPairRequest>) + - [func \(\*GenerateKeyPairRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GenerateKeyPairRequest.Descriptor>) + - [func \(x \*GenerateKeyPairRequest\) GetAlgorithm\(\) KeyAlgorithm](<#GenerateKeyPairRequest.GetAlgorithm>) + - [func \(x \*GenerateKeyPairRequest\) GetKeyId\(\) string](<#GenerateKeyPairRequest.GetKeyId>) + - [func \(x \*GenerateKeyPairRequest\) GetMetadata\(\) map\[string\]string](<#GenerateKeyPairRequest.GetMetadata>) + - [func \(\*GenerateKeyPairRequest\) ProtoMessage\(\)](<#GenerateKeyPairRequest.ProtoMessage>) + - [func \(x \*GenerateKeyPairRequest\) ProtoReflect\(\) protoreflect.Message](<#GenerateKeyPairRequest.ProtoReflect>) + - [func \(x \*GenerateKeyPairRequest\) Reset\(\)](<#GenerateKeyPairRequest.Reset>) + - [func \(x \*GenerateKeyPairRequest\) String\(\) string](<#GenerateKeyPairRequest.String>) +- [type GenerateKeyPairResponse](<#GenerateKeyPairResponse>) + - [func \(\*GenerateKeyPairResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GenerateKeyPairResponse.Descriptor>) + - [func \(x \*GenerateKeyPairResponse\) GetAlgorithm\(\) KeyAlgorithm](<#GenerateKeyPairResponse.GetAlgorithm>) + - [func \(x \*GenerateKeyPairResponse\) GetDidKey\(\) string](<#GenerateKeyPairResponse.GetDidKey>) + - [func \(x \*GenerateKeyPairResponse\) GetErrorMessage\(\) string](<#GenerateKeyPairResponse.GetErrorMessage>) + - [func \(x \*GenerateKeyPairResponse\) GetKeyId\(\) string](<#GenerateKeyPairResponse.GetKeyId>) + - [func \(x \*GenerateKeyPairResponse\) GetPrivateKey\(\) \[\]byte](<#GenerateKeyPairResponse.GetPrivateKey>) + - [func \(x \*GenerateKeyPairResponse\) GetPrivateKeyPem\(\) string](<#GenerateKeyPairResponse.GetPrivateKeyPem>) + - [func \(x \*GenerateKeyPairResponse\) GetPublicKey\(\) \[\]byte](<#GenerateKeyPairResponse.GetPublicKey>) + - [func \(x \*GenerateKeyPairResponse\) GetPublicKeyPem\(\) string](<#GenerateKeyPairResponse.GetPublicKeyPem>) + - [func \(\*GenerateKeyPairResponse\) ProtoMessage\(\)](<#GenerateKeyPairResponse.ProtoMessage>) + - [func \(x \*GenerateKeyPairResponse\) ProtoReflect\(\) protoreflect.Message](<#GenerateKeyPairResponse.ProtoReflect>) + - [func \(x \*GenerateKeyPairResponse\) Reset\(\)](<#GenerateKeyPairResponse.Reset>) + - [func \(x \*GenerateKeyPairResponse\) String\(\) string](<#GenerateKeyPairResponse.String>) +- [type GetAgentRequest](<#GetAgentRequest>) + - [func \(\*GetAgentRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetAgentRequest.Descriptor>) + - [func \(x \*GetAgentRequest\) GetDid\(\) string](<#GetAgentRequest.GetDid>) + - [func \(x \*GetAgentRequest\) GetIncludeBadge\(\) bool](<#GetAgentRequest.GetIncludeBadge>) + - [func \(x \*GetAgentRequest\) GetVerifyBadge\(\) bool](<#GetAgentRequest.GetVerifyBadge>) + - [func \(\*GetAgentRequest\) ProtoMessage\(\)](<#GetAgentRequest.ProtoMessage>) + - [func \(x \*GetAgentRequest\) ProtoReflect\(\) protoreflect.Message](<#GetAgentRequest.ProtoReflect>) + - [func \(x \*GetAgentRequest\) Reset\(\)](<#GetAgentRequest.Reset>) + - [func \(x \*GetAgentRequest\) String\(\) string](<#GetAgentRequest.String>) +- [type GetAgentResponse](<#GetAgentResponse>) + - [func \(\*GetAgentResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetAgentResponse.Descriptor>) + - [func \(x \*GetAgentResponse\) GetAgent\(\) \*RegisteredAgent](<#GetAgentResponse.GetAgent>) + - [func \(x \*GetAgentResponse\) GetBadgeValid\(\) bool](<#GetAgentResponse.GetBadgeValid>) + - [func \(x \*GetAgentResponse\) GetErrorMessage\(\) string](<#GetAgentResponse.GetErrorMessage>) + - [func \(\*GetAgentResponse\) ProtoMessage\(\)](<#GetAgentResponse.ProtoMessage>) + - [func \(x \*GetAgentResponse\) ProtoReflect\(\) protoreflect.Message](<#GetAgentResponse.ProtoReflect>) + - [func \(x \*GetAgentResponse\) Reset\(\)](<#GetAgentResponse.Reset>) + - [func \(x \*GetAgentResponse\) String\(\) string](<#GetAgentResponse.String>) +- [type GetCacheStatsRequest](<#GetCacheStatsRequest>) + - [func \(\*GetCacheStatsRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetCacheStatsRequest.Descriptor>) + - [func \(\*GetCacheStatsRequest\) ProtoMessage\(\)](<#GetCacheStatsRequest.ProtoMessage>) + - [func \(x \*GetCacheStatsRequest\) ProtoReflect\(\) protoreflect.Message](<#GetCacheStatsRequest.ProtoReflect>) + - [func \(x \*GetCacheStatsRequest\) Reset\(\)](<#GetCacheStatsRequest.Reset>) + - [func \(x \*GetCacheStatsRequest\) String\(\) string](<#GetCacheStatsRequest.String>) +- [type GetCacheStatsResponse](<#GetCacheStatsResponse>) + - [func \(\*GetCacheStatsResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetCacheStatsResponse.Descriptor>) + - [func \(x \*GetCacheStatsResponse\) GetCacheTtl\(\) \*Duration](<#GetCacheStatsResponse.GetCacheTtl>) + - [func \(x \*GetCacheStatsResponse\) GetEntriesBySource\(\) map\[string\]int32](<#GetCacheStatsResponse.GetEntriesBySource>) + - [func \(x \*GetCacheStatsResponse\) GetLastRemoteFetch\(\) \*Timestamp](<#GetCacheStatsResponse.GetLastRemoteFetch>) + - [func \(x \*GetCacheStatsResponse\) GetLocalEntries\(\) int32](<#GetCacheStatsResponse.GetLocalEntries>) + - [func \(x \*GetCacheStatsResponse\) GetRemoteEntries\(\) int32](<#GetCacheStatsResponse.GetRemoteEntries>) + - [func \(x \*GetCacheStatsResponse\) GetTotalEntries\(\) int32](<#GetCacheStatsResponse.GetTotalEntries>) + - [func \(\*GetCacheStatsResponse\) ProtoMessage\(\)](<#GetCacheStatsResponse.ProtoMessage>) + - [func \(x \*GetCacheStatsResponse\) ProtoReflect\(\) protoreflect.Message](<#GetCacheStatsResponse.ProtoReflect>) + - [func \(x \*GetCacheStatsResponse\) Reset\(\)](<#GetCacheStatsResponse.Reset>) + - [func \(x \*GetCacheStatsResponse\) String\(\) string](<#GetCacheStatsResponse.String>) +- [type GetDVOrderRequest](<#GetDVOrderRequest>) + - [func \(\*GetDVOrderRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetDVOrderRequest.Descriptor>) + - [func \(x \*GetDVOrderRequest\) GetCaUrl\(\) string](<#GetDVOrderRequest.GetCaUrl>) + - [func \(x \*GetDVOrderRequest\) GetOrderId\(\) string](<#GetDVOrderRequest.GetOrderId>) + - [func \(\*GetDVOrderRequest\) ProtoMessage\(\)](<#GetDVOrderRequest.ProtoMessage>) + - [func \(x \*GetDVOrderRequest\) ProtoReflect\(\) protoreflect.Message](<#GetDVOrderRequest.ProtoReflect>) + - [func \(x \*GetDVOrderRequest\) Reset\(\)](<#GetDVOrderRequest.Reset>) + - [func \(x \*GetDVOrderRequest\) String\(\) string](<#GetDVOrderRequest.String>) +- [type GetDVOrderResponse](<#GetDVOrderResponse>) + - [func \(\*GetDVOrderResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetDVOrderResponse.Descriptor>) + - [func \(x \*GetDVOrderResponse\) GetChallengeToken\(\) string](<#GetDVOrderResponse.GetChallengeToken>) + - [func \(x \*GetDVOrderResponse\) GetChallengeType\(\) string](<#GetDVOrderResponse.GetChallengeType>) + - [func \(x \*GetDVOrderResponse\) GetDnsRecord\(\) string](<#GetDVOrderResponse.GetDnsRecord>) + - [func \(x \*GetDVOrderResponse\) GetDomain\(\) string](<#GetDVOrderResponse.GetDomain>) + - [func \(x \*GetDVOrderResponse\) GetError\(\) string](<#GetDVOrderResponse.GetError>) + - [func \(x \*GetDVOrderResponse\) GetErrorCode\(\) string](<#GetDVOrderResponse.GetErrorCode>) + - [func \(x \*GetDVOrderResponse\) GetExpiresAt\(\) int64](<#GetDVOrderResponse.GetExpiresAt>) + - [func \(x \*GetDVOrderResponse\) GetFinalizedAt\(\) int64](<#GetDVOrderResponse.GetFinalizedAt>) + - [func \(x \*GetDVOrderResponse\) GetOrderId\(\) string](<#GetDVOrderResponse.GetOrderId>) + - [func \(x \*GetDVOrderResponse\) GetStatus\(\) string](<#GetDVOrderResponse.GetStatus>) + - [func \(x \*GetDVOrderResponse\) GetSuccess\(\) bool](<#GetDVOrderResponse.GetSuccess>) + - [func \(x \*GetDVOrderResponse\) GetValidationUrl\(\) string](<#GetDVOrderResponse.GetValidationUrl>) + - [func \(\*GetDVOrderResponse\) ProtoMessage\(\)](<#GetDVOrderResponse.ProtoMessage>) + - [func \(x \*GetDVOrderResponse\) ProtoReflect\(\) protoreflect.Message](<#GetDVOrderResponse.ProtoReflect>) + - [func \(x \*GetDVOrderResponse\) Reset\(\)](<#GetDVOrderResponse.Reset>) + - [func \(x \*GetDVOrderResponse\) String\(\) string](<#GetDVOrderResponse.String>) +- [type GetKeyInfoRequest](<#GetKeyInfoRequest>) + - [func \(\*GetKeyInfoRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetKeyInfoRequest.Descriptor>) + - [func \(x \*GetKeyInfoRequest\) GetKeyId\(\) string](<#GetKeyInfoRequest.GetKeyId>) + - [func \(\*GetKeyInfoRequest\) ProtoMessage\(\)](<#GetKeyInfoRequest.ProtoMessage>) + - [func \(x \*GetKeyInfoRequest\) ProtoReflect\(\) protoreflect.Message](<#GetKeyInfoRequest.ProtoReflect>) + - [func \(x \*GetKeyInfoRequest\) Reset\(\)](<#GetKeyInfoRequest.Reset>) + - [func \(x \*GetKeyInfoRequest\) String\(\) string](<#GetKeyInfoRequest.String>) +- [type GetKeyInfoResponse](<#GetKeyInfoResponse>) + - [func \(\*GetKeyInfoResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetKeyInfoResponse.Descriptor>) + - [func \(x \*GetKeyInfoResponse\) GetAlgorithm\(\) KeyAlgorithm](<#GetKeyInfoResponse.GetAlgorithm>) + - [func \(x \*GetKeyInfoResponse\) GetCreatedAt\(\) \*Timestamp](<#GetKeyInfoResponse.GetCreatedAt>) + - [func \(x \*GetKeyInfoResponse\) GetErrorMessage\(\) string](<#GetKeyInfoResponse.GetErrorMessage>) + - [func \(x \*GetKeyInfoResponse\) GetHasPrivateKey\(\) bool](<#GetKeyInfoResponse.GetHasPrivateKey>) + - [func \(x \*GetKeyInfoResponse\) GetKeyId\(\) string](<#GetKeyInfoResponse.GetKeyId>) + - [func \(x \*GetKeyInfoResponse\) GetMetadata\(\) map\[string\]string](<#GetKeyInfoResponse.GetMetadata>) + - [func \(x \*GetKeyInfoResponse\) GetPublicKey\(\) \[\]byte](<#GetKeyInfoResponse.GetPublicKey>) + - [func \(x \*GetKeyInfoResponse\) GetPublicKeyPem\(\) string](<#GetKeyInfoResponse.GetPublicKeyPem>) + - [func \(\*GetKeyInfoResponse\) ProtoMessage\(\)](<#GetKeyInfoResponse.ProtoMessage>) + - [func \(x \*GetKeyInfoResponse\) ProtoReflect\(\) protoreflect.Message](<#GetKeyInfoResponse.ProtoReflect>) + - [func \(x \*GetKeyInfoResponse\) Reset\(\)](<#GetKeyInfoResponse.Reset>) + - [func \(x \*GetKeyInfoResponse\) String\(\) string](<#GetKeyInfoResponse.String>) +- [type GetKeyRequest](<#GetKeyRequest>) + - [func \(\*GetKeyRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetKeyRequest.Descriptor>) + - [func \(x \*GetKeyRequest\) GetDid\(\) string](<#GetKeyRequest.GetDid>) + - [func \(x \*GetKeyRequest\) GetKeyId\(\) string](<#GetKeyRequest.GetKeyId>) + - [func \(\*GetKeyRequest\) ProtoMessage\(\)](<#GetKeyRequest.ProtoMessage>) + - [func \(x \*GetKeyRequest\) ProtoReflect\(\) protoreflect.Message](<#GetKeyRequest.ProtoReflect>) + - [func \(x \*GetKeyRequest\) Reset\(\)](<#GetKeyRequest.Reset>) + - [func \(x \*GetKeyRequest\) String\(\) string](<#GetKeyRequest.String>) +- [type GetKeyResponse](<#GetKeyResponse>) + - [func \(\*GetKeyResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetKeyResponse.Descriptor>) + - [func \(x \*GetKeyResponse\) GetErrorMessage\(\) string](<#GetKeyResponse.GetErrorMessage>) + - [func \(x \*GetKeyResponse\) GetKey\(\) \*TrustedKey](<#GetKeyResponse.GetKey>) + - [func \(\*GetKeyResponse\) ProtoMessage\(\)](<#GetKeyResponse.ProtoMessage>) + - [func \(x \*GetKeyResponse\) ProtoReflect\(\) protoreflect.Message](<#GetKeyResponse.ProtoReflect>) + - [func \(x \*GetKeyResponse\) Reset\(\)](<#GetKeyResponse.Reset>) + - [func \(x \*GetKeyResponse\) String\(\) string](<#GetKeyResponse.String>) +- [type GetRuleSetRequest](<#GetRuleSetRequest>) + - [func \(\*GetRuleSetRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetRuleSetRequest.Descriptor>) + - [func \(x \*GetRuleSetRequest\) GetId\(\) string](<#GetRuleSetRequest.GetId>) + - [func \(x \*GetRuleSetRequest\) GetVersion\(\) string](<#GetRuleSetRequest.GetVersion>) + - [func \(\*GetRuleSetRequest\) ProtoMessage\(\)](<#GetRuleSetRequest.ProtoMessage>) + - [func \(x \*GetRuleSetRequest\) ProtoReflect\(\) protoreflect.Message](<#GetRuleSetRequest.ProtoReflect>) + - [func \(x \*GetRuleSetRequest\) Reset\(\)](<#GetRuleSetRequest.Reset>) + - [func \(x \*GetRuleSetRequest\) String\(\) string](<#GetRuleSetRequest.String>) +- [type GetRuleSetResponse](<#GetRuleSetResponse>) + - [func \(\*GetRuleSetResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetRuleSetResponse.Descriptor>) + - [func \(x \*GetRuleSetResponse\) GetErrorMessage\(\) string](<#GetRuleSetResponse.GetErrorMessage>) + - [func \(x \*GetRuleSetResponse\) GetRuleSet\(\) \*RuleSet](<#GetRuleSetResponse.GetRuleSet>) + - [func \(\*GetRuleSetResponse\) ProtoMessage\(\)](<#GetRuleSetResponse.ProtoMessage>) + - [func \(x \*GetRuleSetResponse\) ProtoReflect\(\) protoreflect.Message](<#GetRuleSetResponse.ProtoReflect>) + - [func \(x \*GetRuleSetResponse\) Reset\(\)](<#GetRuleSetResponse.Reset>) + - [func \(x \*GetRuleSetResponse\) String\(\) string](<#GetRuleSetResponse.String>) +- [type GetStatsRequest](<#GetStatsRequest>) + - [func \(\*GetStatsRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetStatsRequest.Descriptor>) + - [func \(\*GetStatsRequest\) ProtoMessage\(\)](<#GetStatsRequest.ProtoMessage>) + - [func \(x \*GetStatsRequest\) ProtoReflect\(\) protoreflect.Message](<#GetStatsRequest.ProtoReflect>) + - [func \(x \*GetStatsRequest\) Reset\(\)](<#GetStatsRequest.Reset>) + - [func \(x \*GetStatsRequest\) String\(\) string](<#GetStatsRequest.String>) +- [type GetStatsResponse](<#GetStatsResponse>) + - [func \(\*GetStatsResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#GetStatsResponse.Descriptor>) + - [func \(x \*GetStatsResponse\) GetActiveAgents\(\) int32](<#GetStatsResponse.GetActiveAgents>) + - [func \(x \*GetStatsResponse\) GetAgentsByCapability\(\) map\[string\]int32](<#GetStatsResponse.GetAgentsByCapability>) + - [func \(x \*GetStatsResponse\) GetAgentsByRating\(\) map\[string\]int32](<#GetStatsResponse.GetAgentsByRating>) + - [func \(x \*GetStatsResponse\) GetBadgedAgents\(\) int32](<#GetStatsResponse.GetBadgedAgents>) + - [func \(x \*GetStatsResponse\) GetInactiveAgents\(\) int32](<#GetStatsResponse.GetInactiveAgents>) + - [func \(x \*GetStatsResponse\) GetLastUpdated\(\) \*Timestamp](<#GetStatsResponse.GetLastUpdated>) + - [func \(x \*GetStatsResponse\) GetPendingAgents\(\) int32](<#GetStatsResponse.GetPendingAgents>) + - [func \(x \*GetStatsResponse\) GetSuspendedAgents\(\) int32](<#GetStatsResponse.GetSuspendedAgents>) + - [func \(x \*GetStatsResponse\) GetTotalAgents\(\) int32](<#GetStatsResponse.GetTotalAgents>) + - [func \(\*GetStatsResponse\) ProtoMessage\(\)](<#GetStatsResponse.ProtoMessage>) + - [func \(x \*GetStatsResponse\) ProtoReflect\(\) protoreflect.Message](<#GetStatsResponse.ProtoReflect>) + - [func \(x \*GetStatsResponse\) Reset\(\)](<#GetStatsResponse.Reset>) + - [func \(x \*GetStatsResponse\) String\(\) string](<#GetStatsResponse.String>) +- [type ImportFromDirectoryRequest](<#ImportFromDirectoryRequest>) + - [func \(\*ImportFromDirectoryRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ImportFromDirectoryRequest.Descriptor>) + - [func \(x \*ImportFromDirectoryRequest\) GetDirectoryPath\(\) string](<#ImportFromDirectoryRequest.GetDirectoryPath>) + - [func \(x \*ImportFromDirectoryRequest\) GetRecursive\(\) bool](<#ImportFromDirectoryRequest.GetRecursive>) + - [func \(\*ImportFromDirectoryRequest\) ProtoMessage\(\)](<#ImportFromDirectoryRequest.ProtoMessage>) + - [func \(x \*ImportFromDirectoryRequest\) ProtoReflect\(\) protoreflect.Message](<#ImportFromDirectoryRequest.ProtoReflect>) + - [func \(x \*ImportFromDirectoryRequest\) Reset\(\)](<#ImportFromDirectoryRequest.Reset>) + - [func \(x \*ImportFromDirectoryRequest\) String\(\) string](<#ImportFromDirectoryRequest.String>) +- [type ImportFromDirectoryResponse](<#ImportFromDirectoryResponse>) + - [func \(\*ImportFromDirectoryResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ImportFromDirectoryResponse.Descriptor>) + - [func \(x \*ImportFromDirectoryResponse\) GetErrors\(\) \[\]string](<#ImportFromDirectoryResponse.GetErrors>) + - [func \(x \*ImportFromDirectoryResponse\) GetKeysImported\(\) int32](<#ImportFromDirectoryResponse.GetKeysImported>) + - [func \(x \*ImportFromDirectoryResponse\) GetKeysSkipped\(\) int32](<#ImportFromDirectoryResponse.GetKeysSkipped>) + - [func \(\*ImportFromDirectoryResponse\) ProtoMessage\(\)](<#ImportFromDirectoryResponse.ProtoMessage>) + - [func \(x \*ImportFromDirectoryResponse\) ProtoReflect\(\) protoreflect.Message](<#ImportFromDirectoryResponse.ProtoReflect>) + - [func \(x \*ImportFromDirectoryResponse\) Reset\(\)](<#ImportFromDirectoryResponse.Reset>) + - [func \(x \*ImportFromDirectoryResponse\) String\(\) string](<#ImportFromDirectoryResponse.String>) +- [type InitRequest](<#InitRequest>) + - [func \(\*InitRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#InitRequest.Descriptor>) + - [func \(x \*InitRequest\) GetAgentId\(\) string](<#InitRequest.GetAgentId>) + - [func \(x \*InitRequest\) GetAlgorithm\(\) KeyAlgorithm](<#InitRequest.GetAlgorithm>) + - [func \(x \*InitRequest\) GetApiKey\(\) string](<#InitRequest.GetApiKey>) + - [func \(x \*InitRequest\) GetForce\(\) bool](<#InitRequest.GetForce>) + - [func \(x \*InitRequest\) GetMetadata\(\) map\[string\]string](<#InitRequest.GetMetadata>) + - [func \(x \*InitRequest\) GetOutputDir\(\) string](<#InitRequest.GetOutputDir>) + - [func \(x \*InitRequest\) GetServerUrl\(\) string](<#InitRequest.GetServerUrl>) + - [func \(\*InitRequest\) ProtoMessage\(\)](<#InitRequest.ProtoMessage>) + - [func \(x \*InitRequest\) ProtoReflect\(\) protoreflect.Message](<#InitRequest.ProtoReflect>) + - [func \(x \*InitRequest\) Reset\(\)](<#InitRequest.Reset>) + - [func \(x \*InitRequest\) String\(\) string](<#InitRequest.String>) +- [type InitResponse](<#InitResponse>) + - [func \(\*InitResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#InitResponse.Descriptor>) + - [func \(x \*InitResponse\) GetAgentCardJson\(\) string](<#InitResponse.GetAgentCardJson>) + - [func \(x \*InitResponse\) GetAgentCardPath\(\) string](<#InitResponse.GetAgentCardPath>) + - [func \(x \*InitResponse\) GetAgentId\(\) string](<#InitResponse.GetAgentId>) + - [func \(x \*InitResponse\) GetDid\(\) string](<#InitResponse.GetDid>) + - [func \(x \*InitResponse\) GetErrorMessage\(\) string](<#InitResponse.GetErrorMessage>) + - [func \(x \*InitResponse\) GetPrivateKeyPath\(\) string](<#InitResponse.GetPrivateKeyPath>) + - [func \(x \*InitResponse\) GetPublicKeyPath\(\) string](<#InitResponse.GetPublicKeyPath>) + - [func \(x \*InitResponse\) GetRegistered\(\) bool](<#InitResponse.GetRegistered>) + - [func \(\*InitResponse\) ProtoMessage\(\)](<#InitResponse.ProtoMessage>) + - [func \(x \*InitResponse\) ProtoReflect\(\) protoreflect.Message](<#InitResponse.ProtoReflect>) + - [func \(x \*InitResponse\) Reset\(\)](<#InitResponse.Reset>) + - [func \(x \*InitResponse\) String\(\) string](<#InitResponse.String>) +- [type IsAgentDIDRequest](<#IsAgentDIDRequest>) + - [func \(\*IsAgentDIDRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#IsAgentDIDRequest.Descriptor>) + - [func \(x \*IsAgentDIDRequest\) GetDid\(\) string](<#IsAgentDIDRequest.GetDid>) + - [func \(\*IsAgentDIDRequest\) ProtoMessage\(\)](<#IsAgentDIDRequest.ProtoMessage>) + - [func \(x \*IsAgentDIDRequest\) ProtoReflect\(\) protoreflect.Message](<#IsAgentDIDRequest.ProtoReflect>) + - [func \(x \*IsAgentDIDRequest\) Reset\(\)](<#IsAgentDIDRequest.Reset>) + - [func \(x \*IsAgentDIDRequest\) String\(\) string](<#IsAgentDIDRequest.String>) +- [type IsAgentDIDResponse](<#IsAgentDIDResponse>) + - [func \(\*IsAgentDIDResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#IsAgentDIDResponse.Descriptor>) + - [func \(x \*IsAgentDIDResponse\) GetAgentId\(\) string](<#IsAgentDIDResponse.GetAgentId>) + - [func \(x \*IsAgentDIDResponse\) GetIsAgentDid\(\) bool](<#IsAgentDIDResponse.GetIsAgentDid>) + - [func \(\*IsAgentDIDResponse\) ProtoMessage\(\)](<#IsAgentDIDResponse.ProtoMessage>) + - [func \(x \*IsAgentDIDResponse\) ProtoReflect\(\) protoreflect.Message](<#IsAgentDIDResponse.ProtoReflect>) + - [func \(x \*IsAgentDIDResponse\) Reset\(\)](<#IsAgentDIDResponse.Reset>) + - [func \(x \*IsAgentDIDResponse\) String\(\) string](<#IsAgentDIDResponse.String>) +- [type IsRevokedRequest](<#IsRevokedRequest>) + - [func \(\*IsRevokedRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#IsRevokedRequest.Descriptor>) + - [func \(x \*IsRevokedRequest\) GetAtTime\(\) \*Timestamp](<#IsRevokedRequest.GetAtTime>) + - [func \(x \*IsRevokedRequest\) GetCheckRemote\(\) bool](<#IsRevokedRequest.GetCheckRemote>) + - [func \(x \*IsRevokedRequest\) GetSubject\(\) string](<#IsRevokedRequest.GetSubject>) + - [func \(\*IsRevokedRequest\) ProtoMessage\(\)](<#IsRevokedRequest.ProtoMessage>) + - [func \(x \*IsRevokedRequest\) ProtoReflect\(\) protoreflect.Message](<#IsRevokedRequest.ProtoReflect>) + - [func \(x \*IsRevokedRequest\) Reset\(\)](<#IsRevokedRequest.Reset>) + - [func \(x \*IsRevokedRequest\) String\(\) string](<#IsRevokedRequest.String>) +- [type IsRevokedResponse](<#IsRevokedResponse>) + - [func \(\*IsRevokedResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#IsRevokedResponse.Descriptor>) + - [func \(x \*IsRevokedResponse\) GetEntry\(\) \*RevocationEntry](<#IsRevokedResponse.GetEntry>) + - [func \(x \*IsRevokedResponse\) GetIsRevoked\(\) bool](<#IsRevokedResponse.GetIsRevoked>) + - [func \(x \*IsRevokedResponse\) GetSource\(\) string](<#IsRevokedResponse.GetSource>) + - [func \(\*IsRevokedResponse\) ProtoMessage\(\)](<#IsRevokedResponse.ProtoMessage>) + - [func \(x \*IsRevokedResponse\) ProtoReflect\(\) protoreflect.Message](<#IsRevokedResponse.ProtoReflect>) + - [func \(x \*IsRevokedResponse\) Reset\(\)](<#IsRevokedResponse.Reset>) + - [func \(x \*IsRevokedResponse\) String\(\) string](<#IsRevokedResponse.String>) +- [type IsTrustedRequest](<#IsTrustedRequest>) + - [func \(\*IsTrustedRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#IsTrustedRequest.Descriptor>) + - [func \(x \*IsTrustedRequest\) GetDid\(\) string](<#IsTrustedRequest.GetDid>) + - [func \(\*IsTrustedRequest\) ProtoMessage\(\)](<#IsTrustedRequest.ProtoMessage>) + - [func \(x \*IsTrustedRequest\) ProtoReflect\(\) protoreflect.Message](<#IsTrustedRequest.ProtoReflect>) + - [func \(x \*IsTrustedRequest\) Reset\(\)](<#IsTrustedRequest.Reset>) + - [func \(x \*IsTrustedRequest\) String\(\) string](<#IsTrustedRequest.String>) +- [type IsTrustedResponse](<#IsTrustedResponse>) + - [func \(\*IsTrustedResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#IsTrustedResponse.Descriptor>) + - [func \(x \*IsTrustedResponse\) GetIsTrusted\(\) bool](<#IsTrustedResponse.GetIsTrusted>) + - [func \(x \*IsTrustedResponse\) GetKey\(\) \*TrustedKey](<#IsTrustedResponse.GetKey>) + - [func \(\*IsTrustedResponse\) ProtoMessage\(\)](<#IsTrustedResponse.ProtoMessage>) + - [func \(x \*IsTrustedResponse\) ProtoReflect\(\) protoreflect.Message](<#IsTrustedResponse.ProtoReflect>) + - [func \(x \*IsTrustedResponse\) Reset\(\)](<#IsTrustedResponse.Reset>) + - [func \(x \*IsTrustedResponse\) String\(\) string](<#IsTrustedResponse.String>) +- [type KeeperEvent](<#KeeperEvent>) + - [func \(\*KeeperEvent\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#KeeperEvent.Descriptor>) + - [func \(x \*KeeperEvent\) GetBadgeJti\(\) string](<#KeeperEvent.GetBadgeJti>) + - [func \(x \*KeeperEvent\) GetError\(\) string](<#KeeperEvent.GetError>) + - [func \(x \*KeeperEvent\) GetErrorCode\(\) string](<#KeeperEvent.GetErrorCode>) + - [func \(x \*KeeperEvent\) GetExpiresAt\(\) int64](<#KeeperEvent.GetExpiresAt>) + - [func \(x \*KeeperEvent\) GetSubject\(\) string](<#KeeperEvent.GetSubject>) + - [func \(x \*KeeperEvent\) GetTimestamp\(\) int64](<#KeeperEvent.GetTimestamp>) + - [func \(x \*KeeperEvent\) GetToken\(\) string](<#KeeperEvent.GetToken>) + - [func \(x \*KeeperEvent\) GetTrustLevel\(\) TrustLevel](<#KeeperEvent.GetTrustLevel>) + - [func \(x \*KeeperEvent\) GetType\(\) KeeperEventType](<#KeeperEvent.GetType>) + - [func \(\*KeeperEvent\) ProtoMessage\(\)](<#KeeperEvent.ProtoMessage>) + - [func \(x \*KeeperEvent\) ProtoReflect\(\) protoreflect.Message](<#KeeperEvent.ProtoReflect>) + - [func \(x \*KeeperEvent\) Reset\(\)](<#KeeperEvent.Reset>) + - [func \(x \*KeeperEvent\) String\(\) string](<#KeeperEvent.String>) +- [type KeeperEventType](<#KeeperEventType>) + - [func \(KeeperEventType\) Descriptor\(\) protoreflect.EnumDescriptor](<#KeeperEventType.Descriptor>) + - [func \(x KeeperEventType\) Enum\(\) \*KeeperEventType](<#KeeperEventType.Enum>) + - [func \(KeeperEventType\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#KeeperEventType.EnumDescriptor>) + - [func \(x KeeperEventType\) Number\(\) protoreflect.EnumNumber](<#KeeperEventType.Number>) + - [func \(x KeeperEventType\) String\(\) string](<#KeeperEventType.String>) + - [func \(KeeperEventType\) Type\(\) protoreflect.EnumType](<#KeeperEventType.Type>) +- [type KeeperMode](<#KeeperMode>) + - [func \(KeeperMode\) Descriptor\(\) protoreflect.EnumDescriptor](<#KeeperMode.Descriptor>) + - [func \(x KeeperMode\) Enum\(\) \*KeeperMode](<#KeeperMode.Enum>) + - [func \(KeeperMode\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#KeeperMode.EnumDescriptor>) + - [func \(x KeeperMode\) Number\(\) protoreflect.EnumNumber](<#KeeperMode.Number>) + - [func \(x KeeperMode\) String\(\) string](<#KeeperMode.String>) + - [func \(KeeperMode\) Type\(\) protoreflect.EnumType](<#KeeperMode.Type>) +- [type KeyAlgorithm](<#KeyAlgorithm>) + - [func \(KeyAlgorithm\) Descriptor\(\) protoreflect.EnumDescriptor](<#KeyAlgorithm.Descriptor>) + - [func \(x KeyAlgorithm\) Enum\(\) \*KeyAlgorithm](<#KeyAlgorithm.Enum>) + - [func \(KeyAlgorithm\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#KeyAlgorithm.EnumDescriptor>) + - [func \(x KeyAlgorithm\) Number\(\) protoreflect.EnumNumber](<#KeyAlgorithm.Number>) + - [func \(x KeyAlgorithm\) String\(\) string](<#KeyAlgorithm.String>) + - [func \(KeyAlgorithm\) Type\(\) protoreflect.EnumType](<#KeyAlgorithm.Type>) +- [type KeyFormat](<#KeyFormat>) + - [func \(KeyFormat\) Descriptor\(\) protoreflect.EnumDescriptor](<#KeyFormat.Descriptor>) + - [func \(x KeyFormat\) Enum\(\) \*KeyFormat](<#KeyFormat.Enum>) + - [func \(KeyFormat\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#KeyFormat.EnumDescriptor>) + - [func \(x KeyFormat\) Number\(\) protoreflect.EnumNumber](<#KeyFormat.Number>) + - [func \(x KeyFormat\) String\(\) string](<#KeyFormat.String>) + - [func \(KeyFormat\) Type\(\) protoreflect.EnumType](<#KeyFormat.Type>) +- [type KeyValue](<#KeyValue>) + - [func \(\*KeyValue\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#KeyValue.Descriptor>) + - [func \(x \*KeyValue\) GetKey\(\) string](<#KeyValue.GetKey>) + - [func \(x \*KeyValue\) GetValue\(\) string](<#KeyValue.GetValue>) + - [func \(\*KeyValue\) ProtoMessage\(\)](<#KeyValue.ProtoMessage>) + - [func \(x \*KeyValue\) ProtoReflect\(\) protoreflect.Message](<#KeyValue.ProtoReflect>) + - [func \(x \*KeyValue\) Reset\(\)](<#KeyValue.Reset>) + - [func \(x \*KeyValue\) String\(\) string](<#KeyValue.String>) +- [type ListAgentsRequest](<#ListAgentsRequest>) + - [func \(\*ListAgentsRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ListAgentsRequest.Descriptor>) + - [func \(x \*ListAgentsRequest\) GetCursor\(\) string](<#ListAgentsRequest.GetCursor>) + - [func \(x \*ListAgentsRequest\) GetLimit\(\) int32](<#ListAgentsRequest.GetLimit>) + - [func \(x \*ListAgentsRequest\) GetStatusFilter\(\) AgentStatus](<#ListAgentsRequest.GetStatusFilter>) + - [func \(\*ListAgentsRequest\) ProtoMessage\(\)](<#ListAgentsRequest.ProtoMessage>) + - [func \(x \*ListAgentsRequest\) ProtoReflect\(\) protoreflect.Message](<#ListAgentsRequest.ProtoReflect>) + - [func \(x \*ListAgentsRequest\) Reset\(\)](<#ListAgentsRequest.Reset>) + - [func \(x \*ListAgentsRequest\) String\(\) string](<#ListAgentsRequest.String>) +- [type ListAgentsResponse](<#ListAgentsResponse>) + - [func \(\*ListAgentsResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ListAgentsResponse.Descriptor>) + - [func \(x \*ListAgentsResponse\) GetAgents\(\) \[\]\*RegisteredAgent](<#ListAgentsResponse.GetAgents>) + - [func \(x \*ListAgentsResponse\) GetNextCursor\(\) string](<#ListAgentsResponse.GetNextCursor>) + - [func \(x \*ListAgentsResponse\) GetTotalCount\(\) int32](<#ListAgentsResponse.GetTotalCount>) + - [func \(\*ListAgentsResponse\) ProtoMessage\(\)](<#ListAgentsResponse.ProtoMessage>) + - [func \(x \*ListAgentsResponse\) ProtoReflect\(\) protoreflect.Message](<#ListAgentsResponse.ProtoReflect>) + - [func \(x \*ListAgentsResponse\) Reset\(\)](<#ListAgentsResponse.Reset>) + - [func \(x \*ListAgentsResponse\) String\(\) string](<#ListAgentsResponse.String>) +- [type ListKeysRequest](<#ListKeysRequest>) + - [func \(\*ListKeysRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ListKeysRequest.Descriptor>) + - [func \(x \*ListKeysRequest\) GetCursor\(\) string](<#ListKeysRequest.GetCursor>) + - [func \(x \*ListKeysRequest\) GetDidFilter\(\) string](<#ListKeysRequest.GetDidFilter>) + - [func \(x \*ListKeysRequest\) GetLimit\(\) int32](<#ListKeysRequest.GetLimit>) + - [func \(\*ListKeysRequest\) ProtoMessage\(\)](<#ListKeysRequest.ProtoMessage>) + - [func \(x \*ListKeysRequest\) ProtoReflect\(\) protoreflect.Message](<#ListKeysRequest.ProtoReflect>) + - [func \(x \*ListKeysRequest\) Reset\(\)](<#ListKeysRequest.Reset>) + - [func \(x \*ListKeysRequest\) String\(\) string](<#ListKeysRequest.String>) +- [type ListKeysResponse](<#ListKeysResponse>) + - [func \(\*ListKeysResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ListKeysResponse.Descriptor>) + - [func \(x \*ListKeysResponse\) GetKeys\(\) \[\]\*TrustedKey](<#ListKeysResponse.GetKeys>) + - [func \(x \*ListKeysResponse\) GetNextCursor\(\) string](<#ListKeysResponse.GetNextCursor>) + - [func \(x \*ListKeysResponse\) GetTotalCount\(\) int32](<#ListKeysResponse.GetTotalCount>) + - [func \(\*ListKeysResponse\) ProtoMessage\(\)](<#ListKeysResponse.ProtoMessage>) + - [func \(x \*ListKeysResponse\) ProtoReflect\(\) protoreflect.Message](<#ListKeysResponse.ProtoReflect>) + - [func \(x \*ListKeysResponse\) Reset\(\)](<#ListKeysResponse.Reset>) + - [func \(x \*ListKeysResponse\) String\(\) string](<#ListKeysResponse.String>) +- [type ListRevocationsRequest](<#ListRevocationsRequest>) + - [func \(\*ListRevocationsRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ListRevocationsRequest.Descriptor>) + - [func \(x \*ListRevocationsRequest\) GetCursor\(\) string](<#ListRevocationsRequest.GetCursor>) + - [func \(x \*ListRevocationsRequest\) GetLimit\(\) int32](<#ListRevocationsRequest.GetLimit>) + - [func \(x \*ListRevocationsRequest\) GetReasonFilter\(\) RevocationReason](<#ListRevocationsRequest.GetReasonFilter>) + - [func \(x \*ListRevocationsRequest\) GetSubjectFilter\(\) string](<#ListRevocationsRequest.GetSubjectFilter>) + - [func \(\*ListRevocationsRequest\) ProtoMessage\(\)](<#ListRevocationsRequest.ProtoMessage>) + - [func \(x \*ListRevocationsRequest\) ProtoReflect\(\) protoreflect.Message](<#ListRevocationsRequest.ProtoReflect>) + - [func \(x \*ListRevocationsRequest\) Reset\(\)](<#ListRevocationsRequest.Reset>) + - [func \(x \*ListRevocationsRequest\) String\(\) string](<#ListRevocationsRequest.String>) +- [type ListRevocationsResponse](<#ListRevocationsResponse>) + - [func \(\*ListRevocationsResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ListRevocationsResponse.Descriptor>) + - [func \(x \*ListRevocationsResponse\) GetEntries\(\) \[\]\*RevocationEntry](<#ListRevocationsResponse.GetEntries>) + - [func \(x \*ListRevocationsResponse\) GetNextCursor\(\) string](<#ListRevocationsResponse.GetNextCursor>) + - [func \(x \*ListRevocationsResponse\) GetTotalCount\(\) int32](<#ListRevocationsResponse.GetTotalCount>) + - [func \(\*ListRevocationsResponse\) ProtoMessage\(\)](<#ListRevocationsResponse.ProtoMessage>) + - [func \(x \*ListRevocationsResponse\) ProtoReflect\(\) protoreflect.Message](<#ListRevocationsResponse.ProtoReflect>) + - [func \(x \*ListRevocationsResponse\) Reset\(\)](<#ListRevocationsResponse.Reset>) + - [func \(x \*ListRevocationsResponse\) String\(\) string](<#ListRevocationsResponse.String>) +- [type ListRuleSetsRequest](<#ListRuleSetsRequest>) + - [func \(\*ListRuleSetsRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ListRuleSetsRequest.Descriptor>) + - [func \(x \*ListRuleSetsRequest\) GetCursor\(\) string](<#ListRuleSetsRequest.GetCursor>) + - [func \(x \*ListRuleSetsRequest\) GetLimit\(\) int32](<#ListRuleSetsRequest.GetLimit>) + - [func \(\*ListRuleSetsRequest\) ProtoMessage\(\)](<#ListRuleSetsRequest.ProtoMessage>) + - [func \(x \*ListRuleSetsRequest\) ProtoReflect\(\) protoreflect.Message](<#ListRuleSetsRequest.ProtoReflect>) + - [func \(x \*ListRuleSetsRequest\) Reset\(\)](<#ListRuleSetsRequest.Reset>) + - [func \(x \*ListRuleSetsRequest\) String\(\) string](<#ListRuleSetsRequest.String>) +- [type ListRuleSetsResponse](<#ListRuleSetsResponse>) + - [func \(\*ListRuleSetsResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ListRuleSetsResponse.Descriptor>) + - [func \(x \*ListRuleSetsResponse\) GetNextCursor\(\) string](<#ListRuleSetsResponse.GetNextCursor>) + - [func \(x \*ListRuleSetsResponse\) GetRuleSets\(\) \[\]\*RuleSet](<#ListRuleSetsResponse.GetRuleSets>) + - [func \(\*ListRuleSetsResponse\) ProtoMessage\(\)](<#ListRuleSetsResponse.ProtoMessage>) + - [func \(x \*ListRuleSetsResponse\) ProtoReflect\(\) protoreflect.Message](<#ListRuleSetsResponse.ProtoReflect>) + - [func \(x \*ListRuleSetsResponse\) Reset\(\)](<#ListRuleSetsResponse.Reset>) + - [func \(x \*ListRuleSetsResponse\) String\(\) string](<#ListRuleSetsResponse.String>) +- [type LoadKeyRequest](<#LoadKeyRequest>) + - [func \(\*LoadKeyRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#LoadKeyRequest.Descriptor>) + - [func \(x \*LoadKeyRequest\) GetFilePath\(\) string](<#LoadKeyRequest.GetFilePath>) + - [func \(x \*LoadKeyRequest\) GetFormat\(\) KeyFormat](<#LoadKeyRequest.GetFormat>) + - [func \(x \*LoadKeyRequest\) GetPassphrase\(\) string](<#LoadKeyRequest.GetPassphrase>) + - [func \(\*LoadKeyRequest\) ProtoMessage\(\)](<#LoadKeyRequest.ProtoMessage>) + - [func \(x \*LoadKeyRequest\) ProtoReflect\(\) protoreflect.Message](<#LoadKeyRequest.ProtoReflect>) + - [func \(x \*LoadKeyRequest\) Reset\(\)](<#LoadKeyRequest.Reset>) + - [func \(x \*LoadKeyRequest\) String\(\) string](<#LoadKeyRequest.String>) +- [type LoadKeyResponse](<#LoadKeyResponse>) + - [func \(\*LoadKeyResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#LoadKeyResponse.Descriptor>) + - [func \(x \*LoadKeyResponse\) GetAlgorithm\(\) KeyAlgorithm](<#LoadKeyResponse.GetAlgorithm>) + - [func \(x \*LoadKeyResponse\) GetErrorMessage\(\) string](<#LoadKeyResponse.GetErrorMessage>) + - [func \(x \*LoadKeyResponse\) GetHasPrivateKey\(\) bool](<#LoadKeyResponse.GetHasPrivateKey>) + - [func \(x \*LoadKeyResponse\) GetKeyId\(\) string](<#LoadKeyResponse.GetKeyId>) + - [func \(\*LoadKeyResponse\) ProtoMessage\(\)](<#LoadKeyResponse.ProtoMessage>) + - [func \(x \*LoadKeyResponse\) ProtoReflect\(\) protoreflect.Message](<#LoadKeyResponse.ProtoReflect>) + - [func \(x \*LoadKeyResponse\) Reset\(\)](<#LoadKeyResponse.Reset>) + - [func \(x \*LoadKeyResponse\) String\(\) string](<#LoadKeyResponse.String>) +- [type MCPAuthLevel](<#MCPAuthLevel>) + - [func \(MCPAuthLevel\) Descriptor\(\) protoreflect.EnumDescriptor](<#MCPAuthLevel.Descriptor>) + - [func \(x MCPAuthLevel\) Enum\(\) \*MCPAuthLevel](<#MCPAuthLevel.Enum>) + - [func \(MCPAuthLevel\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#MCPAuthLevel.EnumDescriptor>) + - [func \(x MCPAuthLevel\) Number\(\) protoreflect.EnumNumber](<#MCPAuthLevel.Number>) + - [func \(x MCPAuthLevel\) String\(\) string](<#MCPAuthLevel.String>) + - [func \(MCPAuthLevel\) Type\(\) protoreflect.EnumType](<#MCPAuthLevel.Type>) +- [type MCPDecision](<#MCPDecision>) + - [func \(MCPDecision\) Descriptor\(\) protoreflect.EnumDescriptor](<#MCPDecision.Descriptor>) + - [func \(x MCPDecision\) Enum\(\) \*MCPDecision](<#MCPDecision.Enum>) + - [func \(MCPDecision\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#MCPDecision.EnumDescriptor>) + - [func \(x MCPDecision\) Number\(\) protoreflect.EnumNumber](<#MCPDecision.Number>) + - [func \(x MCPDecision\) String\(\) string](<#MCPDecision.String>) + - [func \(MCPDecision\) Type\(\) protoreflect.EnumType](<#MCPDecision.Type>) +- [type MCPDenyReason](<#MCPDenyReason>) + - [func \(MCPDenyReason\) Descriptor\(\) protoreflect.EnumDescriptor](<#MCPDenyReason.Descriptor>) + - [func \(x MCPDenyReason\) Enum\(\) \*MCPDenyReason](<#MCPDenyReason.Enum>) + - [func \(MCPDenyReason\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#MCPDenyReason.EnumDescriptor>) + - [func \(x MCPDenyReason\) Number\(\) protoreflect.EnumNumber](<#MCPDenyReason.Number>) + - [func \(x MCPDenyReason\) String\(\) string](<#MCPDenyReason.String>) + - [func \(MCPDenyReason\) Type\(\) protoreflect.EnumType](<#MCPDenyReason.Type>) +- [type MCPHealthRequest](<#MCPHealthRequest>) + - [func \(\*MCPHealthRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#MCPHealthRequest.Descriptor>) + - [func \(x \*MCPHealthRequest\) GetClientVersion\(\) string](<#MCPHealthRequest.GetClientVersion>) + - [func \(\*MCPHealthRequest\) ProtoMessage\(\)](<#MCPHealthRequest.ProtoMessage>) + - [func \(x \*MCPHealthRequest\) ProtoReflect\(\) protoreflect.Message](<#MCPHealthRequest.ProtoReflect>) + - [func \(x \*MCPHealthRequest\) Reset\(\)](<#MCPHealthRequest.Reset>) + - [func \(x \*MCPHealthRequest\) String\(\) string](<#MCPHealthRequest.String>) +- [type MCPHealthResponse](<#MCPHealthResponse>) + - [func \(\*MCPHealthResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#MCPHealthResponse.Descriptor>) + - [func \(x \*MCPHealthResponse\) GetCoreVersion\(\) string](<#MCPHealthResponse.GetCoreVersion>) + - [func \(x \*MCPHealthResponse\) GetHealthy\(\) bool](<#MCPHealthResponse.GetHealthy>) + - [func \(x \*MCPHealthResponse\) GetProtoVersion\(\) string](<#MCPHealthResponse.GetProtoVersion>) + - [func \(x \*MCPHealthResponse\) GetVersionCompatible\(\) bool](<#MCPHealthResponse.GetVersionCompatible>) + - [func \(\*MCPHealthResponse\) ProtoMessage\(\)](<#MCPHealthResponse.ProtoMessage>) + - [func \(x \*MCPHealthResponse\) ProtoReflect\(\) protoreflect.Message](<#MCPHealthResponse.ProtoReflect>) + - [func \(x \*MCPHealthResponse\) Reset\(\)](<#MCPHealthResponse.Reset>) + - [func \(x \*MCPHealthResponse\) String\(\) string](<#MCPHealthResponse.String>) +- [type MCPHttpHeaders](<#MCPHttpHeaders>) + - [func \(\*MCPHttpHeaders\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#MCPHttpHeaders.Descriptor>) + - [func \(x \*MCPHttpHeaders\) GetCapiscioServerBadge\(\) string](<#MCPHttpHeaders.GetCapiscioServerBadge>) + - [func \(x \*MCPHttpHeaders\) GetCapiscioServerDid\(\) string](<#MCPHttpHeaders.GetCapiscioServerDid>) + - [func \(\*MCPHttpHeaders\) ProtoMessage\(\)](<#MCPHttpHeaders.ProtoMessage>) + - [func \(x \*MCPHttpHeaders\) ProtoReflect\(\) protoreflect.Message](<#MCPHttpHeaders.ProtoReflect>) + - [func \(x \*MCPHttpHeaders\) Reset\(\)](<#MCPHttpHeaders.Reset>) + - [func \(x \*MCPHttpHeaders\) String\(\) string](<#MCPHttpHeaders.String>) +- [type MCPJsonRpcMeta](<#MCPJsonRpcMeta>) + - [func \(\*MCPJsonRpcMeta\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#MCPJsonRpcMeta.Descriptor>) + - [func \(x \*MCPJsonRpcMeta\) GetMetaJson\(\) string](<#MCPJsonRpcMeta.GetMetaJson>) + - [func \(\*MCPJsonRpcMeta\) ProtoMessage\(\)](<#MCPJsonRpcMeta.ProtoMessage>) + - [func \(x \*MCPJsonRpcMeta\) ProtoReflect\(\) protoreflect.Message](<#MCPJsonRpcMeta.ProtoReflect>) + - [func \(x \*MCPJsonRpcMeta\) Reset\(\)](<#MCPJsonRpcMeta.Reset>) + - [func \(x \*MCPJsonRpcMeta\) String\(\) string](<#MCPJsonRpcMeta.String>) +- [type MCPObligation](<#MCPObligation>) + - [func \(\*MCPObligation\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#MCPObligation.Descriptor>) + - [func \(x \*MCPObligation\) GetParamsJson\(\) string](<#MCPObligation.GetParamsJson>) + - [func \(x \*MCPObligation\) GetType\(\) string](<#MCPObligation.GetType>) + - [func \(\*MCPObligation\) ProtoMessage\(\)](<#MCPObligation.ProtoMessage>) + - [func \(x \*MCPObligation\) ProtoReflect\(\) protoreflect.Message](<#MCPObligation.ProtoReflect>) + - [func \(x \*MCPObligation\) Reset\(\)](<#MCPObligation.Reset>) + - [func \(x \*MCPObligation\) String\(\) string](<#MCPObligation.String>) +- [type MCPServerErrorCode](<#MCPServerErrorCode>) + - [func \(MCPServerErrorCode\) Descriptor\(\) protoreflect.EnumDescriptor](<#MCPServerErrorCode.Descriptor>) + - [func \(x MCPServerErrorCode\) Enum\(\) \*MCPServerErrorCode](<#MCPServerErrorCode.Enum>) + - [func \(MCPServerErrorCode\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#MCPServerErrorCode.EnumDescriptor>) + - [func \(x MCPServerErrorCode\) Number\(\) protoreflect.EnumNumber](<#MCPServerErrorCode.Number>) + - [func \(x MCPServerErrorCode\) String\(\) string](<#MCPServerErrorCode.String>) + - [func \(MCPServerErrorCode\) Type\(\) protoreflect.EnumType](<#MCPServerErrorCode.Type>) +- [type MCPServerState](<#MCPServerState>) + - [func \(MCPServerState\) Descriptor\(\) protoreflect.EnumDescriptor](<#MCPServerState.Descriptor>) + - [func \(x MCPServerState\) Enum\(\) \*MCPServerState](<#MCPServerState.Enum>) + - [func \(MCPServerState\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#MCPServerState.EnumDescriptor>) + - [func \(x MCPServerState\) Number\(\) protoreflect.EnumNumber](<#MCPServerState.Number>) + - [func \(x MCPServerState\) String\(\) string](<#MCPServerState.String>) + - [func \(MCPServerState\) Type\(\) protoreflect.EnumType](<#MCPServerState.Type>) +- [type MCPServiceClient](<#MCPServiceClient>) + - [func NewMCPServiceClient\(cc grpc.ClientConnInterface\) MCPServiceClient](<#NewMCPServiceClient>) +- [type MCPServiceServer](<#MCPServiceServer>) +- [type MCPVerifyConfig](<#MCPVerifyConfig>) + - [func \(\*MCPVerifyConfig\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#MCPVerifyConfig.Descriptor>) + - [func \(x \*MCPVerifyConfig\) GetAcceptLevelZero\(\) bool](<#MCPVerifyConfig.GetAcceptLevelZero>) + - [func \(x \*MCPVerifyConfig\) GetMinTrustLevel\(\) int32](<#MCPVerifyConfig.GetMinTrustLevel>) + - [func \(x \*MCPVerifyConfig\) GetOfflineMode\(\) bool](<#MCPVerifyConfig.GetOfflineMode>) + - [func \(x \*MCPVerifyConfig\) GetSkipOriginBinding\(\) bool](<#MCPVerifyConfig.GetSkipOriginBinding>) + - [func \(x \*MCPVerifyConfig\) GetTrustedIssuers\(\) \[\]string](<#MCPVerifyConfig.GetTrustedIssuers>) + - [func \(\*MCPVerifyConfig\) ProtoMessage\(\)](<#MCPVerifyConfig.ProtoMessage>) + - [func \(x \*MCPVerifyConfig\) ProtoReflect\(\) protoreflect.Message](<#MCPVerifyConfig.ProtoReflect>) + - [func \(x \*MCPVerifyConfig\) Reset\(\)](<#MCPVerifyConfig.Reset>) + - [func \(x \*MCPVerifyConfig\) String\(\) string](<#MCPVerifyConfig.String>) +- [type NewAgentDIDRequest](<#NewAgentDIDRequest>) + - [func \(\*NewAgentDIDRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#NewAgentDIDRequest.Descriptor>) + - [func \(x \*NewAgentDIDRequest\) GetAgentId\(\) string](<#NewAgentDIDRequest.GetAgentId>) + - [func \(x \*NewAgentDIDRequest\) GetDomain\(\) string](<#NewAgentDIDRequest.GetDomain>) + - [func \(\*NewAgentDIDRequest\) ProtoMessage\(\)](<#NewAgentDIDRequest.ProtoMessage>) + - [func \(x \*NewAgentDIDRequest\) ProtoReflect\(\) protoreflect.Message](<#NewAgentDIDRequest.ProtoReflect>) + - [func \(x \*NewAgentDIDRequest\) Reset\(\)](<#NewAgentDIDRequest.Reset>) + - [func \(x \*NewAgentDIDRequest\) String\(\) string](<#NewAgentDIDRequest.String>) +- [type NewAgentDIDResponse](<#NewAgentDIDResponse>) + - [func \(\*NewAgentDIDResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#NewAgentDIDResponse.Descriptor>) + - [func \(x \*NewAgentDIDResponse\) GetDid\(\) string](<#NewAgentDIDResponse.GetDid>) + - [func \(x \*NewAgentDIDResponse\) GetErrorMessage\(\) string](<#NewAgentDIDResponse.GetErrorMessage>) + - [func \(\*NewAgentDIDResponse\) ProtoMessage\(\)](<#NewAgentDIDResponse.ProtoMessage>) + - [func \(x \*NewAgentDIDResponse\) ProtoReflect\(\) protoreflect.Message](<#NewAgentDIDResponse.ProtoReflect>) + - [func \(x \*NewAgentDIDResponse\) Reset\(\)](<#NewAgentDIDResponse.Reset>) + - [func \(x \*NewAgentDIDResponse\) String\(\) string](<#NewAgentDIDResponse.String>) +- [type NewCapiscIOAgentDIDRequest](<#NewCapiscIOAgentDIDRequest>) + - [func \(\*NewCapiscIOAgentDIDRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#NewCapiscIOAgentDIDRequest.Descriptor>) + - [func \(x \*NewCapiscIOAgentDIDRequest\) GetAgentId\(\) string](<#NewCapiscIOAgentDIDRequest.GetAgentId>) + - [func \(\*NewCapiscIOAgentDIDRequest\) ProtoMessage\(\)](<#NewCapiscIOAgentDIDRequest.ProtoMessage>) + - [func \(x \*NewCapiscIOAgentDIDRequest\) ProtoReflect\(\) protoreflect.Message](<#NewCapiscIOAgentDIDRequest.ProtoReflect>) + - [func \(x \*NewCapiscIOAgentDIDRequest\) Reset\(\)](<#NewCapiscIOAgentDIDRequest.Reset>) + - [func \(x \*NewCapiscIOAgentDIDRequest\) String\(\) string](<#NewCapiscIOAgentDIDRequest.String>) +- [type ParseBadgeRequest](<#ParseBadgeRequest>) + - [func \(\*ParseBadgeRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ParseBadgeRequest.Descriptor>) + - [func \(x \*ParseBadgeRequest\) GetToken\(\) string](<#ParseBadgeRequest.GetToken>) + - [func \(\*ParseBadgeRequest\) ProtoMessage\(\)](<#ParseBadgeRequest.ProtoMessage>) + - [func \(x \*ParseBadgeRequest\) ProtoReflect\(\) protoreflect.Message](<#ParseBadgeRequest.ProtoReflect>) + - [func \(x \*ParseBadgeRequest\) Reset\(\)](<#ParseBadgeRequest.Reset>) + - [func \(x \*ParseBadgeRequest\) String\(\) string](<#ParseBadgeRequest.String>) +- [type ParseBadgeResponse](<#ParseBadgeResponse>) + - [func \(\*ParseBadgeResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ParseBadgeResponse.Descriptor>) + - [func \(x \*ParseBadgeResponse\) GetClaims\(\) \*BadgeClaims](<#ParseBadgeResponse.GetClaims>) + - [func \(x \*ParseBadgeResponse\) GetErrorMessage\(\) string](<#ParseBadgeResponse.GetErrorMessage>) + - [func \(\*ParseBadgeResponse\) ProtoMessage\(\)](<#ParseBadgeResponse.ProtoMessage>) + - [func \(x \*ParseBadgeResponse\) ProtoReflect\(\) protoreflect.Message](<#ParseBadgeResponse.ProtoReflect>) + - [func \(x \*ParseBadgeResponse\) Reset\(\)](<#ParseBadgeResponse.Reset>) + - [func \(x \*ParseBadgeResponse\) String\(\) string](<#ParseBadgeResponse.String>) +- [type ParseDIDRequest](<#ParseDIDRequest>) + - [func \(\*ParseDIDRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ParseDIDRequest.Descriptor>) + - [func \(x \*ParseDIDRequest\) GetDid\(\) string](<#ParseDIDRequest.GetDid>) + - [func \(\*ParseDIDRequest\) ProtoMessage\(\)](<#ParseDIDRequest.ProtoMessage>) + - [func \(x \*ParseDIDRequest\) ProtoReflect\(\) protoreflect.Message](<#ParseDIDRequest.ProtoReflect>) + - [func \(x \*ParseDIDRequest\) Reset\(\)](<#ParseDIDRequest.Reset>) + - [func \(x \*ParseDIDRequest\) String\(\) string](<#ParseDIDRequest.String>) +- [type ParseDIDResponse](<#ParseDIDResponse>) + - [func \(\*ParseDIDResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ParseDIDResponse.Descriptor>) + - [func \(x \*ParseDIDResponse\) GetDid\(\) \*DID](<#ParseDIDResponse.GetDid>) + - [func \(x \*ParseDIDResponse\) GetErrorMessage\(\) string](<#ParseDIDResponse.GetErrorMessage>) + - [func \(\*ParseDIDResponse\) ProtoMessage\(\)](<#ParseDIDResponse.ProtoMessage>) + - [func \(x \*ParseDIDResponse\) ProtoReflect\(\) protoreflect.Message](<#ParseDIDResponse.ProtoReflect>) + - [func \(x \*ParseDIDResponse\) Reset\(\)](<#ParseDIDResponse.Reset>) + - [func \(x \*ParseDIDResponse\) String\(\) string](<#ParseDIDResponse.String>) +- [type ParseServerIdentityRequest](<#ParseServerIdentityRequest>) + - [func \(\*ParseServerIdentityRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ParseServerIdentityRequest.Descriptor>) + - [func \(x \*ParseServerIdentityRequest\) GetHttpHeaders\(\) \*MCPHttpHeaders](<#ParseServerIdentityRequest.GetHttpHeaders>) + - [func \(x \*ParseServerIdentityRequest\) GetJsonrpcMeta\(\) \*MCPJsonRpcMeta](<#ParseServerIdentityRequest.GetJsonrpcMeta>) + - [func \(x \*ParseServerIdentityRequest\) GetSource\(\) isParseServerIdentityRequest\_Source](<#ParseServerIdentityRequest.GetSource>) + - [func \(\*ParseServerIdentityRequest\) ProtoMessage\(\)](<#ParseServerIdentityRequest.ProtoMessage>) + - [func \(x \*ParseServerIdentityRequest\) ProtoReflect\(\) protoreflect.Message](<#ParseServerIdentityRequest.ProtoReflect>) + - [func \(x \*ParseServerIdentityRequest\) Reset\(\)](<#ParseServerIdentityRequest.Reset>) + - [func \(x \*ParseServerIdentityRequest\) String\(\) string](<#ParseServerIdentityRequest.String>) +- [type ParseServerIdentityRequest\_HttpHeaders](<#ParseServerIdentityRequest_HttpHeaders>) +- [type ParseServerIdentityRequest\_JsonrpcMeta](<#ParseServerIdentityRequest_JsonrpcMeta>) +- [type ParseServerIdentityResponse](<#ParseServerIdentityResponse>) + - [func \(\*ParseServerIdentityResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ParseServerIdentityResponse.Descriptor>) + - [func \(x \*ParseServerIdentityResponse\) GetIdentityPresent\(\) bool](<#ParseServerIdentityResponse.GetIdentityPresent>) + - [func \(x \*ParseServerIdentityResponse\) GetServerBadge\(\) string](<#ParseServerIdentityResponse.GetServerBadge>) + - [func \(x \*ParseServerIdentityResponse\) GetServerDid\(\) string](<#ParseServerIdentityResponse.GetServerDid>) + - [func \(\*ParseServerIdentityResponse\) ProtoMessage\(\)](<#ParseServerIdentityResponse.ProtoMessage>) + - [func \(x \*ParseServerIdentityResponse\) ProtoReflect\(\) protoreflect.Message](<#ParseServerIdentityResponse.ProtoReflect>) + - [func \(x \*ParseServerIdentityResponse\) Reset\(\)](<#ParseServerIdentityResponse.Reset>) + - [func \(x \*ParseServerIdentityResponse\) String\(\) string](<#ParseServerIdentityResponse.String>) +- [type PingRequest](<#PingRequest>) + - [func \(\*PingRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#PingRequest.Descriptor>) + - [func \(\*PingRequest\) ProtoMessage\(\)](<#PingRequest.ProtoMessage>) + - [func \(x \*PingRequest\) ProtoReflect\(\) protoreflect.Message](<#PingRequest.ProtoReflect>) + - [func \(x \*PingRequest\) Reset\(\)](<#PingRequest.Reset>) + - [func \(x \*PingRequest\) String\(\) string](<#PingRequest.String>) +- [type PingResponse](<#PingResponse>) + - [func \(\*PingResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#PingResponse.Descriptor>) + - [func \(x \*PingResponse\) GetServerTime\(\) \*Timestamp](<#PingResponse.GetServerTime>) + - [func \(x \*PingResponse\) GetStatus\(\) string](<#PingResponse.GetStatus>) + - [func \(x \*PingResponse\) GetVersion\(\) string](<#PingResponse.GetVersion>) + - [func \(\*PingResponse\) ProtoMessage\(\)](<#PingResponse.ProtoMessage>) + - [func \(x \*PingResponse\) ProtoReflect\(\) protoreflect.Message](<#PingResponse.ProtoReflect>) + - [func \(x \*PingResponse\) Reset\(\)](<#PingResponse.Reset>) + - [func \(x \*PingResponse\) String\(\) string](<#PingResponse.String>) +- [type PolicyAction](<#PolicyAction>) + - [func \(\*PolicyAction\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#PolicyAction.Descriptor>) + - [func \(x \*PolicyAction\) GetCapabilityClass\(\) string](<#PolicyAction.GetCapabilityClass>) + - [func \(x \*PolicyAction\) GetOperation\(\) string](<#PolicyAction.GetOperation>) + - [func \(\*PolicyAction\) ProtoMessage\(\)](<#PolicyAction.ProtoMessage>) + - [func \(x \*PolicyAction\) ProtoReflect\(\) protoreflect.Message](<#PolicyAction.ProtoReflect>) + - [func \(x \*PolicyAction\) Reset\(\)](<#PolicyAction.Reset>) + - [func \(x \*PolicyAction\) String\(\) string](<#PolicyAction.String>) +- [type PolicyConfig](<#PolicyConfig>) + - [func \(\*PolicyConfig\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#PolicyConfig.Descriptor>) + - [func \(x \*PolicyConfig\) GetBreakglassPublicKey\(\) \[\]byte](<#PolicyConfig.GetBreakglassPublicKey>) + - [func \(x \*PolicyConfig\) GetEnforcementMode\(\) string](<#PolicyConfig.GetEnforcementMode>) + - [func \(x \*PolicyConfig\) GetPdpEndpoint\(\) string](<#PolicyConfig.GetPdpEndpoint>) + - [func \(x \*PolicyConfig\) GetPdpTimeoutMs\(\) int32](<#PolicyConfig.GetPdpTimeoutMs>) + - [func \(x \*PolicyConfig\) GetPepId\(\) string](<#PolicyConfig.GetPepId>) + - [func \(x \*PolicyConfig\) GetWorkspace\(\) string](<#PolicyConfig.GetWorkspace>) + - [func \(\*PolicyConfig\) ProtoMessage\(\)](<#PolicyConfig.ProtoMessage>) + - [func \(x \*PolicyConfig\) ProtoReflect\(\) protoreflect.Message](<#PolicyConfig.ProtoReflect>) + - [func \(x \*PolicyConfig\) Reset\(\)](<#PolicyConfig.Reset>) + - [func \(x \*PolicyConfig\) String\(\) string](<#PolicyConfig.String>) +- [type PolicyDecisionRequest](<#PolicyDecisionRequest>) + - [func \(\*PolicyDecisionRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#PolicyDecisionRequest.Descriptor>) + - [func \(x \*PolicyDecisionRequest\) GetAction\(\) \*PolicyAction](<#PolicyDecisionRequest.GetAction>) + - [func \(x \*PolicyDecisionRequest\) GetBreakglassToken\(\) string](<#PolicyDecisionRequest.GetBreakglassToken>) + - [func \(x \*PolicyDecisionRequest\) GetConfig\(\) \*PolicyConfig](<#PolicyDecisionRequest.GetConfig>) + - [func \(x \*PolicyDecisionRequest\) GetResource\(\) \*PolicyResource](<#PolicyDecisionRequest.GetResource>) + - [func \(x \*PolicyDecisionRequest\) GetSubject\(\) \*PolicySubject](<#PolicyDecisionRequest.GetSubject>) + - [func \(\*PolicyDecisionRequest\) ProtoMessage\(\)](<#PolicyDecisionRequest.ProtoMessage>) + - [func \(x \*PolicyDecisionRequest\) ProtoReflect\(\) protoreflect.Message](<#PolicyDecisionRequest.ProtoReflect>) + - [func \(x \*PolicyDecisionRequest\) Reset\(\)](<#PolicyDecisionRequest.Reset>) + - [func \(x \*PolicyDecisionRequest\) String\(\) string](<#PolicyDecisionRequest.String>) +- [type PolicyDecisionResponse](<#PolicyDecisionResponse>) + - [func \(\*PolicyDecisionResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#PolicyDecisionResponse.Descriptor>) + - [func \(x \*PolicyDecisionResponse\) GetBreakglassJti\(\) string](<#PolicyDecisionResponse.GetBreakglassJti>) + - [func \(x \*PolicyDecisionResponse\) GetBreakglassOverride\(\) bool](<#PolicyDecisionResponse.GetBreakglassOverride>) + - [func \(x \*PolicyDecisionResponse\) GetCacheHit\(\) bool](<#PolicyDecisionResponse.GetCacheHit>) + - [func \(x \*PolicyDecisionResponse\) GetDecision\(\) string](<#PolicyDecisionResponse.GetDecision>) + - [func \(x \*PolicyDecisionResponse\) GetDecisionId\(\) string](<#PolicyDecisionResponse.GetDecisionId>) + - [func \(x \*PolicyDecisionResponse\) GetEnforcementMode\(\) string](<#PolicyDecisionResponse.GetEnforcementMode>) + - [func \(x \*PolicyDecisionResponse\) GetErrorCode\(\) string](<#PolicyDecisionResponse.GetErrorCode>) + - [func \(x \*PolicyDecisionResponse\) GetObligations\(\) \[\]\*MCPObligation](<#PolicyDecisionResponse.GetObligations>) + - [func \(x \*PolicyDecisionResponse\) GetPdpLatencyMs\(\) int64](<#PolicyDecisionResponse.GetPdpLatencyMs>) + - [func \(x \*PolicyDecisionResponse\) GetReason\(\) string](<#PolicyDecisionResponse.GetReason>) + - [func \(x \*PolicyDecisionResponse\) GetTtl\(\) int32](<#PolicyDecisionResponse.GetTtl>) + - [func \(x \*PolicyDecisionResponse\) GetTxnId\(\) string](<#PolicyDecisionResponse.GetTxnId>) + - [func \(\*PolicyDecisionResponse\) ProtoMessage\(\)](<#PolicyDecisionResponse.ProtoMessage>) + - [func \(x \*PolicyDecisionResponse\) ProtoReflect\(\) protoreflect.Message](<#PolicyDecisionResponse.ProtoReflect>) + - [func \(x \*PolicyDecisionResponse\) Reset\(\)](<#PolicyDecisionResponse.Reset>) + - [func \(x \*PolicyDecisionResponse\) String\(\) string](<#PolicyDecisionResponse.String>) +- [type PolicyResource](<#PolicyResource>) + - [func \(\*PolicyResource\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#PolicyResource.Descriptor>) + - [func \(x \*PolicyResource\) GetIdentifier\(\) string](<#PolicyResource.GetIdentifier>) + - [func \(\*PolicyResource\) ProtoMessage\(\)](<#PolicyResource.ProtoMessage>) + - [func \(x \*PolicyResource\) ProtoReflect\(\) protoreflect.Message](<#PolicyResource.ProtoReflect>) + - [func \(x \*PolicyResource\) Reset\(\)](<#PolicyResource.Reset>) + - [func \(x \*PolicyResource\) String\(\) string](<#PolicyResource.String>) +- [type PolicySubject](<#PolicySubject>) + - [func \(\*PolicySubject\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#PolicySubject.Descriptor>) + - [func \(x \*PolicySubject\) GetBadgeExp\(\) int64](<#PolicySubject.GetBadgeExp>) + - [func \(x \*PolicySubject\) GetBadgeJti\(\) string](<#PolicySubject.GetBadgeJti>) + - [func \(x \*PolicySubject\) GetDid\(\) string](<#PolicySubject.GetDid>) + - [func \(x \*PolicySubject\) GetIal\(\) string](<#PolicySubject.GetIal>) + - [func \(x \*PolicySubject\) GetTrustLevel\(\) string](<#PolicySubject.GetTrustLevel>) + - [func \(\*PolicySubject\) ProtoMessage\(\)](<#PolicySubject.ProtoMessage>) + - [func \(x \*PolicySubject\) ProtoReflect\(\) protoreflect.Message](<#PolicySubject.ProtoReflect>) + - [func \(x \*PolicySubject\) Reset\(\)](<#PolicySubject.Reset>) + - [func \(x \*PolicySubject\) String\(\) string](<#PolicySubject.String>) +- [type Rating](<#Rating>) + - [func \(Rating\) Descriptor\(\) protoreflect.EnumDescriptor](<#Rating.Descriptor>) + - [func \(x Rating\) Enum\(\) \*Rating](<#Rating.Enum>) + - [func \(Rating\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#Rating.EnumDescriptor>) + - [func \(x Rating\) Number\(\) protoreflect.EnumNumber](<#Rating.Number>) + - [func \(x Rating\) String\(\) string](<#Rating.String>) + - [func \(Rating\) Type\(\) protoreflect.EnumType](<#Rating.Type>) +- [type RegisterAgentRequest](<#RegisterAgentRequest>) + - [func \(\*RegisterAgentRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RegisterAgentRequest.Descriptor>) + - [func \(x \*RegisterAgentRequest\) GetAgentCardJson\(\) string](<#RegisterAgentRequest.GetAgentCardJson>) + - [func \(x \*RegisterAgentRequest\) GetMetadata\(\) map\[string\]string](<#RegisterAgentRequest.GetMetadata>) + - [func \(x \*RegisterAgentRequest\) GetSignedBadge\(\) string](<#RegisterAgentRequest.GetSignedBadge>) + - [func \(x \*RegisterAgentRequest\) GetTags\(\) \[\]string](<#RegisterAgentRequest.GetTags>) + - [func \(\*RegisterAgentRequest\) ProtoMessage\(\)](<#RegisterAgentRequest.ProtoMessage>) + - [func \(x \*RegisterAgentRequest\) ProtoReflect\(\) protoreflect.Message](<#RegisterAgentRequest.ProtoReflect>) + - [func \(x \*RegisterAgentRequest\) Reset\(\)](<#RegisterAgentRequest.Reset>) + - [func \(x \*RegisterAgentRequest\) String\(\) string](<#RegisterAgentRequest.String>) +- [type RegisterAgentResponse](<#RegisterAgentResponse>) + - [func \(\*RegisterAgentResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RegisterAgentResponse.Descriptor>) + - [func \(x \*RegisterAgentResponse\) GetDid\(\) string](<#RegisterAgentResponse.GetDid>) + - [func \(x \*RegisterAgentResponse\) GetErrorMessage\(\) string](<#RegisterAgentResponse.GetErrorMessage>) + - [func \(x \*RegisterAgentResponse\) GetStatus\(\) AgentStatus](<#RegisterAgentResponse.GetStatus>) + - [func \(\*RegisterAgentResponse\) ProtoMessage\(\)](<#RegisterAgentResponse.ProtoMessage>) + - [func \(x \*RegisterAgentResponse\) ProtoReflect\(\) protoreflect.Message](<#RegisterAgentResponse.ProtoReflect>) + - [func \(x \*RegisterAgentResponse\) Reset\(\)](<#RegisterAgentResponse.Reset>) + - [func \(x \*RegisterAgentResponse\) String\(\) string](<#RegisterAgentResponse.String>) +- [type RegisteredAgent](<#RegisteredAgent>) + - [func \(\*RegisteredAgent\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RegisteredAgent.Descriptor>) + - [func \(x \*RegisteredAgent\) GetAgentCardJson\(\) string](<#RegisteredAgent.GetAgentCardJson>) + - [func \(x \*RegisteredAgent\) GetBadge\(\) \*BadgeClaims](<#RegisteredAgent.GetBadge>) + - [func \(x \*RegisteredAgent\) GetCapabilities\(\) \[\]string](<#RegisteredAgent.GetCapabilities>) + - [func \(x \*RegisteredAgent\) GetDescription\(\) string](<#RegisteredAgent.GetDescription>) + - [func \(x \*RegisteredAgent\) GetDid\(\) string](<#RegisteredAgent.GetDid>) + - [func \(x \*RegisteredAgent\) GetMetadata\(\) map\[string\]string](<#RegisteredAgent.GetMetadata>) + - [func \(x \*RegisteredAgent\) GetName\(\) string](<#RegisteredAgent.GetName>) + - [func \(x \*RegisteredAgent\) GetRating\(\) Rating](<#RegisteredAgent.GetRating>) + - [func \(x \*RegisteredAgent\) GetRegisteredAt\(\) \*Timestamp](<#RegisteredAgent.GetRegisteredAt>) + - [func \(x \*RegisteredAgent\) GetStatus\(\) AgentStatus](<#RegisteredAgent.GetStatus>) + - [func \(x \*RegisteredAgent\) GetTags\(\) \[\]string](<#RegisteredAgent.GetTags>) + - [func \(x \*RegisteredAgent\) GetUpdatedAt\(\) \*Timestamp](<#RegisteredAgent.GetUpdatedAt>) + - [func \(\*RegisteredAgent\) ProtoMessage\(\)](<#RegisteredAgent.ProtoMessage>) + - [func \(x \*RegisteredAgent\) ProtoReflect\(\) protoreflect.Message](<#RegisteredAgent.ProtoReflect>) + - [func \(x \*RegisteredAgent\) Reset\(\)](<#RegisteredAgent.Reset>) + - [func \(x \*RegisteredAgent\) String\(\) string](<#RegisteredAgent.String>) +- [type RegistryServiceClient](<#RegistryServiceClient>) + - [func NewRegistryServiceClient\(cc grpc.ClientConnInterface\) RegistryServiceClient](<#NewRegistryServiceClient>) +- [type RegistryServiceServer](<#RegistryServiceServer>) +- [type RemoveKeyRequest](<#RemoveKeyRequest>) + - [func \(\*RemoveKeyRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RemoveKeyRequest.Descriptor>) + - [func \(x \*RemoveKeyRequest\) GetDid\(\) string](<#RemoveKeyRequest.GetDid>) + - [func \(x \*RemoveKeyRequest\) GetKeyId\(\) string](<#RemoveKeyRequest.GetKeyId>) + - [func \(\*RemoveKeyRequest\) ProtoMessage\(\)](<#RemoveKeyRequest.ProtoMessage>) + - [func \(x \*RemoveKeyRequest\) ProtoReflect\(\) protoreflect.Message](<#RemoveKeyRequest.ProtoReflect>) + - [func \(x \*RemoveKeyRequest\) Reset\(\)](<#RemoveKeyRequest.Reset>) + - [func \(x \*RemoveKeyRequest\) String\(\) string](<#RemoveKeyRequest.String>) +- [type RemoveKeyResponse](<#RemoveKeyResponse>) + - [func \(\*RemoveKeyResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RemoveKeyResponse.Descriptor>) + - [func \(x \*RemoveKeyResponse\) GetErrorMessage\(\) string](<#RemoveKeyResponse.GetErrorMessage>) + - [func \(x \*RemoveKeyResponse\) GetKeysRemoved\(\) int32](<#RemoveKeyResponse.GetKeysRemoved>) + - [func \(\*RemoveKeyResponse\) ProtoMessage\(\)](<#RemoveKeyResponse.ProtoMessage>) + - [func \(x \*RemoveKeyResponse\) ProtoReflect\(\) protoreflect.Message](<#RemoveKeyResponse.ProtoReflect>) + - [func \(x \*RemoveKeyResponse\) Reset\(\)](<#RemoveKeyResponse.Reset>) + - [func \(x \*RemoveKeyResponse\) String\(\) string](<#RemoveKeyResponse.String>) +- [type RequestBadgeRequest](<#RequestBadgeRequest>) + - [func \(\*RequestBadgeRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RequestBadgeRequest.Descriptor>) + - [func \(x \*RequestBadgeRequest\) GetAgentId\(\) string](<#RequestBadgeRequest.GetAgentId>) + - [func \(x \*RequestBadgeRequest\) GetApiKey\(\) string](<#RequestBadgeRequest.GetApiKey>) + - [func \(x \*RequestBadgeRequest\) GetAudience\(\) \[\]string](<#RequestBadgeRequest.GetAudience>) + - [func \(x \*RequestBadgeRequest\) GetCaUrl\(\) string](<#RequestBadgeRequest.GetCaUrl>) + - [func \(x \*RequestBadgeRequest\) GetDomain\(\) string](<#RequestBadgeRequest.GetDomain>) + - [func \(x \*RequestBadgeRequest\) GetTrustLevel\(\) TrustLevel](<#RequestBadgeRequest.GetTrustLevel>) + - [func \(x \*RequestBadgeRequest\) GetTtlSeconds\(\) int32](<#RequestBadgeRequest.GetTtlSeconds>) + - [func \(\*RequestBadgeRequest\) ProtoMessage\(\)](<#RequestBadgeRequest.ProtoMessage>) + - [func \(x \*RequestBadgeRequest\) ProtoReflect\(\) protoreflect.Message](<#RequestBadgeRequest.ProtoReflect>) + - [func \(x \*RequestBadgeRequest\) Reset\(\)](<#RequestBadgeRequest.Reset>) + - [func \(x \*RequestBadgeRequest\) String\(\) string](<#RequestBadgeRequest.String>) +- [type RequestBadgeResponse](<#RequestBadgeResponse>) + - [func \(\*RequestBadgeResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RequestBadgeResponse.Descriptor>) + - [func \(x \*RequestBadgeResponse\) GetError\(\) string](<#RequestBadgeResponse.GetError>) + - [func \(x \*RequestBadgeResponse\) GetErrorCode\(\) string](<#RequestBadgeResponse.GetErrorCode>) + - [func \(x \*RequestBadgeResponse\) GetExpiresAt\(\) int64](<#RequestBadgeResponse.GetExpiresAt>) + - [func \(x \*RequestBadgeResponse\) GetJti\(\) string](<#RequestBadgeResponse.GetJti>) + - [func \(x \*RequestBadgeResponse\) GetSubject\(\) string](<#RequestBadgeResponse.GetSubject>) + - [func \(x \*RequestBadgeResponse\) GetSuccess\(\) bool](<#RequestBadgeResponse.GetSuccess>) + - [func \(x \*RequestBadgeResponse\) GetToken\(\) string](<#RequestBadgeResponse.GetToken>) + - [func \(x \*RequestBadgeResponse\) GetTrustLevel\(\) TrustLevel](<#RequestBadgeResponse.GetTrustLevel>) + - [func \(\*RequestBadgeResponse\) ProtoMessage\(\)](<#RequestBadgeResponse.ProtoMessage>) + - [func \(x \*RequestBadgeResponse\) ProtoReflect\(\) protoreflect.Message](<#RequestBadgeResponse.ProtoReflect>) + - [func \(x \*RequestBadgeResponse\) Reset\(\)](<#RequestBadgeResponse.Reset>) + - [func \(x \*RequestBadgeResponse\) String\(\) string](<#RequestBadgeResponse.String>) +- [type RequestPoPBadgeRequest](<#RequestPoPBadgeRequest>) + - [func \(\*RequestPoPBadgeRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RequestPoPBadgeRequest.Descriptor>) + - [func \(x \*RequestPoPBadgeRequest\) GetAgentDid\(\) string](<#RequestPoPBadgeRequest.GetAgentDid>) + - [func \(x \*RequestPoPBadgeRequest\) GetApiKey\(\) string](<#RequestPoPBadgeRequest.GetApiKey>) + - [func \(x \*RequestPoPBadgeRequest\) GetAudience\(\) \[\]string](<#RequestPoPBadgeRequest.GetAudience>) + - [func \(x \*RequestPoPBadgeRequest\) GetCaUrl\(\) string](<#RequestPoPBadgeRequest.GetCaUrl>) + - [func \(x \*RequestPoPBadgeRequest\) GetPrivateKeyJwk\(\) string](<#RequestPoPBadgeRequest.GetPrivateKeyJwk>) + - [func \(x \*RequestPoPBadgeRequest\) GetTtlSeconds\(\) int32](<#RequestPoPBadgeRequest.GetTtlSeconds>) + - [func \(\*RequestPoPBadgeRequest\) ProtoMessage\(\)](<#RequestPoPBadgeRequest.ProtoMessage>) + - [func \(x \*RequestPoPBadgeRequest\) ProtoReflect\(\) protoreflect.Message](<#RequestPoPBadgeRequest.ProtoReflect>) + - [func \(x \*RequestPoPBadgeRequest\) Reset\(\)](<#RequestPoPBadgeRequest.Reset>) + - [func \(x \*RequestPoPBadgeRequest\) String\(\) string](<#RequestPoPBadgeRequest.String>) +- [type RequestPoPBadgeResponse](<#RequestPoPBadgeResponse>) + - [func \(\*RequestPoPBadgeResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RequestPoPBadgeResponse.Descriptor>) + - [func \(x \*RequestPoPBadgeResponse\) GetAssuranceLevel\(\) string](<#RequestPoPBadgeResponse.GetAssuranceLevel>) + - [func \(x \*RequestPoPBadgeResponse\) GetCnf\(\) map\[string\]string](<#RequestPoPBadgeResponse.GetCnf>) + - [func \(x \*RequestPoPBadgeResponse\) GetError\(\) string](<#RequestPoPBadgeResponse.GetError>) + - [func \(x \*RequestPoPBadgeResponse\) GetErrorCode\(\) string](<#RequestPoPBadgeResponse.GetErrorCode>) + - [func \(x \*RequestPoPBadgeResponse\) GetExpiresAt\(\) int64](<#RequestPoPBadgeResponse.GetExpiresAt>) + - [func \(x \*RequestPoPBadgeResponse\) GetJti\(\) string](<#RequestPoPBadgeResponse.GetJti>) + - [func \(x \*RequestPoPBadgeResponse\) GetSubject\(\) string](<#RequestPoPBadgeResponse.GetSubject>) + - [func \(x \*RequestPoPBadgeResponse\) GetSuccess\(\) bool](<#RequestPoPBadgeResponse.GetSuccess>) + - [func \(x \*RequestPoPBadgeResponse\) GetToken\(\) string](<#RequestPoPBadgeResponse.GetToken>) + - [func \(x \*RequestPoPBadgeResponse\) GetTrustLevel\(\) string](<#RequestPoPBadgeResponse.GetTrustLevel>) + - [func \(\*RequestPoPBadgeResponse\) ProtoMessage\(\)](<#RequestPoPBadgeResponse.ProtoMessage>) + - [func \(x \*RequestPoPBadgeResponse\) ProtoReflect\(\) protoreflect.Message](<#RequestPoPBadgeResponse.ProtoReflect>) + - [func \(x \*RequestPoPBadgeResponse\) Reset\(\)](<#RequestPoPBadgeResponse.Reset>) + - [func \(x \*RequestPoPBadgeResponse\) String\(\) string](<#RequestPoPBadgeResponse.String>) +- [type RevocationEntry](<#RevocationEntry>) + - [func \(\*RevocationEntry\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RevocationEntry.Descriptor>) + - [func \(x \*RevocationEntry\) GetComment\(\) string](<#RevocationEntry.GetComment>) + - [func \(x \*RevocationEntry\) GetExpiresAt\(\) \*Timestamp](<#RevocationEntry.GetExpiresAt>) + - [func \(x \*RevocationEntry\) GetIssuer\(\) string](<#RevocationEntry.GetIssuer>) + - [func \(x \*RevocationEntry\) GetReason\(\) RevocationReason](<#RevocationEntry.GetReason>) + - [func \(x \*RevocationEntry\) GetRevokedAt\(\) \*Timestamp](<#RevocationEntry.GetRevokedAt>) + - [func \(x \*RevocationEntry\) GetSubject\(\) string](<#RevocationEntry.GetSubject>) + - [func \(\*RevocationEntry\) ProtoMessage\(\)](<#RevocationEntry.ProtoMessage>) + - [func \(x \*RevocationEntry\) ProtoReflect\(\) protoreflect.Message](<#RevocationEntry.ProtoReflect>) + - [func \(x \*RevocationEntry\) Reset\(\)](<#RevocationEntry.Reset>) + - [func \(x \*RevocationEntry\) String\(\) string](<#RevocationEntry.String>) +- [type RevocationReason](<#RevocationReason>) + - [func \(RevocationReason\) Descriptor\(\) protoreflect.EnumDescriptor](<#RevocationReason.Descriptor>) + - [func \(x RevocationReason\) Enum\(\) \*RevocationReason](<#RevocationReason.Enum>) + - [func \(RevocationReason\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#RevocationReason.EnumDescriptor>) + - [func \(x RevocationReason\) Number\(\) protoreflect.EnumNumber](<#RevocationReason.Number>) + - [func \(x RevocationReason\) String\(\) string](<#RevocationReason.String>) + - [func \(RevocationReason\) Type\(\) protoreflect.EnumType](<#RevocationReason.Type>) +- [type RevocationServiceClient](<#RevocationServiceClient>) + - [func NewRevocationServiceClient\(cc grpc.ClientConnInterface\) RevocationServiceClient](<#NewRevocationServiceClient>) +- [type RevocationServiceServer](<#RevocationServiceServer>) +- [type RevokeRequest](<#RevokeRequest>) + - [func \(\*RevokeRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RevokeRequest.Descriptor>) + - [func \(x \*RevokeRequest\) GetComment\(\) string](<#RevokeRequest.GetComment>) + - [func \(x \*RevokeRequest\) GetReason\(\) RevocationReason](<#RevokeRequest.GetReason>) + - [func \(x \*RevokeRequest\) GetSubject\(\) string](<#RevokeRequest.GetSubject>) + - [func \(\*RevokeRequest\) ProtoMessage\(\)](<#RevokeRequest.ProtoMessage>) + - [func \(x \*RevokeRequest\) ProtoReflect\(\) protoreflect.Message](<#RevokeRequest.ProtoReflect>) + - [func \(x \*RevokeRequest\) Reset\(\)](<#RevokeRequest.Reset>) + - [func \(x \*RevokeRequest\) String\(\) string](<#RevokeRequest.String>) +- [type RevokeResponse](<#RevokeResponse>) + - [func \(\*RevokeResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RevokeResponse.Descriptor>) + - [func \(x \*RevokeResponse\) GetEntry\(\) \*RevocationEntry](<#RevokeResponse.GetEntry>) + - [func \(x \*RevokeResponse\) GetErrorMessage\(\) string](<#RevokeResponse.GetErrorMessage>) + - [func \(\*RevokeResponse\) ProtoMessage\(\)](<#RevokeResponse.ProtoMessage>) + - [func \(x \*RevokeResponse\) ProtoReflect\(\) protoreflect.Message](<#RevokeResponse.ProtoReflect>) + - [func \(x \*RevokeResponse\) Reset\(\)](<#RevokeResponse.Reset>) + - [func \(x \*RevokeResponse\) String\(\) string](<#RevokeResponse.String>) +- [type Rule](<#Rule>) + - [func \(\*Rule\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#Rule.Descriptor>) + - [func \(x \*Rule\) GetCategory\(\) ScoreCategory](<#Rule.GetCategory>) + - [func \(x \*Rule\) GetDescription\(\) string](<#Rule.GetDescription>) + - [func \(x \*Rule\) GetExpression\(\) string](<#Rule.GetExpression>) + - [func \(x \*Rule\) GetId\(\) string](<#Rule.GetId>) + - [func \(x \*Rule\) GetName\(\) string](<#Rule.GetName>) + - [func \(x \*Rule\) GetSeverity\(\) RuleSeverity](<#Rule.GetSeverity>) + - [func \(x \*Rule\) GetWeight\(\) int32](<#Rule.GetWeight>) + - [func \(\*Rule\) ProtoMessage\(\)](<#Rule.ProtoMessage>) + - [func \(x \*Rule\) ProtoReflect\(\) protoreflect.Message](<#Rule.ProtoReflect>) + - [func \(x \*Rule\) Reset\(\)](<#Rule.Reset>) + - [func \(x \*Rule\) String\(\) string](<#Rule.String>) +- [type RuleResult](<#RuleResult>) + - [func \(\*RuleResult\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RuleResult.Descriptor>) + - [func \(x \*RuleResult\) GetDetails\(\) map\[string\]string](<#RuleResult.GetDetails>) + - [func \(x \*RuleResult\) GetMessage\(\) string](<#RuleResult.GetMessage>) + - [func \(x \*RuleResult\) GetPassed\(\) bool](<#RuleResult.GetPassed>) + - [func \(x \*RuleResult\) GetRuleId\(\) string](<#RuleResult.GetRuleId>) + - [func \(x \*RuleResult\) GetScoreContribution\(\) float64](<#RuleResult.GetScoreContribution>) + - [func \(\*RuleResult\) ProtoMessage\(\)](<#RuleResult.ProtoMessage>) + - [func \(x \*RuleResult\) ProtoReflect\(\) protoreflect.Message](<#RuleResult.ProtoReflect>) + - [func \(x \*RuleResult\) Reset\(\)](<#RuleResult.Reset>) + - [func \(x \*RuleResult\) String\(\) string](<#RuleResult.String>) +- [type RuleSet](<#RuleSet>) + - [func \(\*RuleSet\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#RuleSet.Descriptor>) + - [func \(x \*RuleSet\) GetDescription\(\) string](<#RuleSet.GetDescription>) + - [func \(x \*RuleSet\) GetId\(\) string](<#RuleSet.GetId>) + - [func \(x \*RuleSet\) GetMetadata\(\) map\[string\]string](<#RuleSet.GetMetadata>) + - [func \(x \*RuleSet\) GetName\(\) string](<#RuleSet.GetName>) + - [func \(x \*RuleSet\) GetRules\(\) \[\]\*Rule](<#RuleSet.GetRules>) + - [func \(x \*RuleSet\) GetVersion\(\) string](<#RuleSet.GetVersion>) + - [func \(\*RuleSet\) ProtoMessage\(\)](<#RuleSet.ProtoMessage>) + - [func \(x \*RuleSet\) ProtoReflect\(\) protoreflect.Message](<#RuleSet.ProtoReflect>) + - [func \(x \*RuleSet\) Reset\(\)](<#RuleSet.Reset>) + - [func \(x \*RuleSet\) String\(\) string](<#RuleSet.String>) +- [type RuleSeverity](<#RuleSeverity>) + - [func \(RuleSeverity\) Descriptor\(\) protoreflect.EnumDescriptor](<#RuleSeverity.Descriptor>) + - [func \(x RuleSeverity\) Enum\(\) \*RuleSeverity](<#RuleSeverity.Enum>) + - [func \(RuleSeverity\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#RuleSeverity.EnumDescriptor>) + - [func \(x RuleSeverity\) Number\(\) protoreflect.EnumNumber](<#RuleSeverity.Number>) + - [func \(x RuleSeverity\) String\(\) string](<#RuleSeverity.String>) + - [func \(RuleSeverity\) Type\(\) protoreflect.EnumType](<#RuleSeverity.Type>) +- [type ScoreAgentCardRequest](<#ScoreAgentCardRequest>) + - [func \(\*ScoreAgentCardRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ScoreAgentCardRequest.Descriptor>) + - [func \(x \*ScoreAgentCardRequest\) GetAgentCardJson\(\) string](<#ScoreAgentCardRequest.GetAgentCardJson>) + - [func \(x \*ScoreAgentCardRequest\) GetCategories\(\) \[\]ScoreCategory](<#ScoreAgentCardRequest.GetCategories>) + - [func \(x \*ScoreAgentCardRequest\) GetRuleSetId\(\) string](<#ScoreAgentCardRequest.GetRuleSetId>) + - [func \(\*ScoreAgentCardRequest\) ProtoMessage\(\)](<#ScoreAgentCardRequest.ProtoMessage>) + - [func \(x \*ScoreAgentCardRequest\) ProtoReflect\(\) protoreflect.Message](<#ScoreAgentCardRequest.ProtoReflect>) + - [func \(x \*ScoreAgentCardRequest\) Reset\(\)](<#ScoreAgentCardRequest.Reset>) + - [func \(x \*ScoreAgentCardRequest\) String\(\) string](<#ScoreAgentCardRequest.String>) +- [type ScoreAgentCardResponse](<#ScoreAgentCardResponse>) + - [func \(\*ScoreAgentCardResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ScoreAgentCardResponse.Descriptor>) + - [func \(x \*ScoreAgentCardResponse\) GetErrorMessage\(\) string](<#ScoreAgentCardResponse.GetErrorMessage>) + - [func \(x \*ScoreAgentCardResponse\) GetResult\(\) \*ScoringResult](<#ScoreAgentCardResponse.GetResult>) + - [func \(\*ScoreAgentCardResponse\) ProtoMessage\(\)](<#ScoreAgentCardResponse.ProtoMessage>) + - [func \(x \*ScoreAgentCardResponse\) ProtoReflect\(\) protoreflect.Message](<#ScoreAgentCardResponse.ProtoReflect>) + - [func \(x \*ScoreAgentCardResponse\) Reset\(\)](<#ScoreAgentCardResponse.Reset>) + - [func \(x \*ScoreAgentCardResponse\) String\(\) string](<#ScoreAgentCardResponse.String>) +- [type ScoreCategory](<#ScoreCategory>) + - [func \(ScoreCategory\) Descriptor\(\) protoreflect.EnumDescriptor](<#ScoreCategory.Descriptor>) + - [func \(x ScoreCategory\) Enum\(\) \*ScoreCategory](<#ScoreCategory.Enum>) + - [func \(ScoreCategory\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#ScoreCategory.EnumDescriptor>) + - [func \(x ScoreCategory\) Number\(\) protoreflect.EnumNumber](<#ScoreCategory.Number>) + - [func \(x ScoreCategory\) String\(\) string](<#ScoreCategory.String>) + - [func \(ScoreCategory\) Type\(\) protoreflect.EnumType](<#ScoreCategory.Type>) +- [type ScoringResult](<#ScoringResult>) + - [func \(\*ScoringResult\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ScoringResult.Descriptor>) + - [func \(x \*ScoringResult\) GetCategories\(\) \[\]\*CategoryScore](<#ScoringResult.GetCategories>) + - [func \(x \*ScoringResult\) GetOverallScore\(\) float64](<#ScoringResult.GetOverallScore>) + - [func \(x \*ScoringResult\) GetRating\(\) Rating](<#ScoringResult.GetRating>) + - [func \(x \*ScoringResult\) GetRuleResults\(\) \[\]\*RuleResult](<#ScoringResult.GetRuleResults>) + - [func \(x \*ScoringResult\) GetRuleSetId\(\) string](<#ScoringResult.GetRuleSetId>) + - [func \(x \*ScoringResult\) GetRuleSetVersion\(\) string](<#ScoringResult.GetRuleSetVersion>) + - [func \(x \*ScoringResult\) GetScoredAt\(\) \*Timestamp](<#ScoringResult.GetScoredAt>) + - [func \(x \*ScoringResult\) GetValidation\(\) \*ValidationResult](<#ScoringResult.GetValidation>) + - [func \(\*ScoringResult\) ProtoMessage\(\)](<#ScoringResult.ProtoMessage>) + - [func \(x \*ScoringResult\) ProtoReflect\(\) protoreflect.Message](<#ScoringResult.ProtoReflect>) + - [func \(x \*ScoringResult\) Reset\(\)](<#ScoringResult.Reset>) + - [func \(x \*ScoringResult\) String\(\) string](<#ScoringResult.String>) +- [type ScoringServiceClient](<#ScoringServiceClient>) + - [func NewScoringServiceClient\(cc grpc.ClientConnInterface\) ScoringServiceClient](<#NewScoringServiceClient>) +- [type ScoringServiceServer](<#ScoringServiceServer>) +- [type SearchAgentsRequest](<#SearchAgentsRequest>) + - [func \(\*SearchAgentsRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#SearchAgentsRequest.Descriptor>) + - [func \(x \*SearchAgentsRequest\) GetCapabilities\(\) \[\]string](<#SearchAgentsRequest.GetCapabilities>) + - [func \(x \*SearchAgentsRequest\) GetCursor\(\) string](<#SearchAgentsRequest.GetCursor>) + - [func \(x \*SearchAgentsRequest\) GetLimit\(\) int32](<#SearchAgentsRequest.GetLimit>) + - [func \(x \*SearchAgentsRequest\) GetMinRating\(\) Rating](<#SearchAgentsRequest.GetMinRating>) + - [func \(x \*SearchAgentsRequest\) GetOperator\(\) SearchOperator](<#SearchAgentsRequest.GetOperator>) + - [func \(x \*SearchAgentsRequest\) GetQuery\(\) string](<#SearchAgentsRequest.GetQuery>) + - [func \(x \*SearchAgentsRequest\) GetSortBy\(\) string](<#SearchAgentsRequest.GetSortBy>) + - [func \(x \*SearchAgentsRequest\) GetSortDescending\(\) bool](<#SearchAgentsRequest.GetSortDescending>) + - [func \(x \*SearchAgentsRequest\) GetStatusFilter\(\) AgentStatus](<#SearchAgentsRequest.GetStatusFilter>) + - [func \(x \*SearchAgentsRequest\) GetTags\(\) \[\]string](<#SearchAgentsRequest.GetTags>) + - [func \(\*SearchAgentsRequest\) ProtoMessage\(\)](<#SearchAgentsRequest.ProtoMessage>) + - [func \(x \*SearchAgentsRequest\) ProtoReflect\(\) protoreflect.Message](<#SearchAgentsRequest.ProtoReflect>) + - [func \(x \*SearchAgentsRequest\) Reset\(\)](<#SearchAgentsRequest.Reset>) + - [func \(x \*SearchAgentsRequest\) String\(\) string](<#SearchAgentsRequest.String>) +- [type SearchAgentsResponse](<#SearchAgentsResponse>) + - [func \(\*SearchAgentsResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#SearchAgentsResponse.Descriptor>) + - [func \(x \*SearchAgentsResponse\) GetAgents\(\) \[\]\*RegisteredAgent](<#SearchAgentsResponse.GetAgents>) + - [func \(x \*SearchAgentsResponse\) GetNextCursor\(\) string](<#SearchAgentsResponse.GetNextCursor>) + - [func \(x \*SearchAgentsResponse\) GetTotalCount\(\) int32](<#SearchAgentsResponse.GetTotalCount>) + - [func \(\*SearchAgentsResponse\) ProtoMessage\(\)](<#SearchAgentsResponse.ProtoMessage>) + - [func \(x \*SearchAgentsResponse\) ProtoReflect\(\) protoreflect.Message](<#SearchAgentsResponse.ProtoReflect>) + - [func \(x \*SearchAgentsResponse\) Reset\(\)](<#SearchAgentsResponse.Reset>) + - [func \(x \*SearchAgentsResponse\) String\(\) string](<#SearchAgentsResponse.String>) +- [type SearchOperator](<#SearchOperator>) + - [func \(SearchOperator\) Descriptor\(\) protoreflect.EnumDescriptor](<#SearchOperator.Descriptor>) + - [func \(x SearchOperator\) Enum\(\) \*SearchOperator](<#SearchOperator.Enum>) + - [func \(SearchOperator\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#SearchOperator.EnumDescriptor>) + - [func \(x SearchOperator\) Number\(\) protoreflect.EnumNumber](<#SearchOperator.Number>) + - [func \(x SearchOperator\) String\(\) string](<#SearchOperator.String>) + - [func \(SearchOperator\) Type\(\) protoreflect.EnumType](<#SearchOperator.Type>) +- [type SignAttachedRequest](<#SignAttachedRequest>) + - [func \(\*SignAttachedRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#SignAttachedRequest.Descriptor>) + - [func \(x \*SignAttachedRequest\) GetDetachPayload\(\) bool](<#SignAttachedRequest.GetDetachPayload>) + - [func \(x \*SignAttachedRequest\) GetFormat\(\) SignatureFormat](<#SignAttachedRequest.GetFormat>) + - [func \(x \*SignAttachedRequest\) GetHeaders\(\) map\[string\]string](<#SignAttachedRequest.GetHeaders>) + - [func \(x \*SignAttachedRequest\) GetKeyId\(\) string](<#SignAttachedRequest.GetKeyId>) + - [func \(x \*SignAttachedRequest\) GetPayload\(\) \[\]byte](<#SignAttachedRequest.GetPayload>) + - [func \(\*SignAttachedRequest\) ProtoMessage\(\)](<#SignAttachedRequest.ProtoMessage>) + - [func \(x \*SignAttachedRequest\) ProtoReflect\(\) protoreflect.Message](<#SignAttachedRequest.ProtoReflect>) + - [func \(x \*SignAttachedRequest\) Reset\(\)](<#SignAttachedRequest.Reset>) + - [func \(x \*SignAttachedRequest\) String\(\) string](<#SignAttachedRequest.String>) +- [type SignAttachedResponse](<#SignAttachedResponse>) + - [func \(\*SignAttachedResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#SignAttachedResponse.Descriptor>) + - [func \(x \*SignAttachedResponse\) GetErrorMessage\(\) string](<#SignAttachedResponse.GetErrorMessage>) + - [func \(x \*SignAttachedResponse\) GetJws\(\) string](<#SignAttachedResponse.GetJws>) + - [func \(\*SignAttachedResponse\) ProtoMessage\(\)](<#SignAttachedResponse.ProtoMessage>) + - [func \(x \*SignAttachedResponse\) ProtoReflect\(\) protoreflect.Message](<#SignAttachedResponse.ProtoReflect>) + - [func \(x \*SignAttachedResponse\) Reset\(\)](<#SignAttachedResponse.Reset>) + - [func \(x \*SignAttachedResponse\) String\(\) string](<#SignAttachedResponse.String>) +- [type SignBadgeRequest](<#SignBadgeRequest>) + - [func \(\*SignBadgeRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#SignBadgeRequest.Descriptor>) + - [func \(x \*SignBadgeRequest\) GetClaims\(\) \*BadgeClaims](<#SignBadgeRequest.GetClaims>) + - [func \(x \*SignBadgeRequest\) GetKeyId\(\) string](<#SignBadgeRequest.GetKeyId>) + - [func \(x \*SignBadgeRequest\) GetPrivateKeyJwk\(\) string](<#SignBadgeRequest.GetPrivateKeyJwk>) + - [func \(\*SignBadgeRequest\) ProtoMessage\(\)](<#SignBadgeRequest.ProtoMessage>) + - [func \(x \*SignBadgeRequest\) ProtoReflect\(\) protoreflect.Message](<#SignBadgeRequest.ProtoReflect>) + - [func \(x \*SignBadgeRequest\) Reset\(\)](<#SignBadgeRequest.Reset>) + - [func \(x \*SignBadgeRequest\) String\(\) string](<#SignBadgeRequest.String>) +- [type SignBadgeResponse](<#SignBadgeResponse>) + - [func \(\*SignBadgeResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#SignBadgeResponse.Descriptor>) + - [func \(x \*SignBadgeResponse\) GetClaims\(\) \*BadgeClaims](<#SignBadgeResponse.GetClaims>) + - [func \(x \*SignBadgeResponse\) GetToken\(\) string](<#SignBadgeResponse.GetToken>) + - [func \(\*SignBadgeResponse\) ProtoMessage\(\)](<#SignBadgeResponse.ProtoMessage>) + - [func \(x \*SignBadgeResponse\) ProtoReflect\(\) protoreflect.Message](<#SignBadgeResponse.ProtoReflect>) + - [func \(x \*SignBadgeResponse\) Reset\(\)](<#SignBadgeResponse.Reset>) + - [func \(x \*SignBadgeResponse\) String\(\) string](<#SignBadgeResponse.String>) +- [type SignRequest](<#SignRequest>) + - [func \(\*SignRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#SignRequest.Descriptor>) + - [func \(x \*SignRequest\) GetFormat\(\) SignatureFormat](<#SignRequest.GetFormat>) + - [func \(x \*SignRequest\) GetHeaders\(\) map\[string\]string](<#SignRequest.GetHeaders>) + - [func \(x \*SignRequest\) GetKeyId\(\) string](<#SignRequest.GetKeyId>) + - [func \(x \*SignRequest\) GetPayload\(\) \[\]byte](<#SignRequest.GetPayload>) + - [func \(\*SignRequest\) ProtoMessage\(\)](<#SignRequest.ProtoMessage>) + - [func \(x \*SignRequest\) ProtoReflect\(\) protoreflect.Message](<#SignRequest.ProtoReflect>) + - [func \(x \*SignRequest\) Reset\(\)](<#SignRequest.Reset>) + - [func \(x \*SignRequest\) String\(\) string](<#SignRequest.String>) +- [type SignResponse](<#SignResponse>) + - [func \(\*SignResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#SignResponse.Descriptor>) + - [func \(x \*SignResponse\) GetErrorMessage\(\) string](<#SignResponse.GetErrorMessage>) + - [func \(x \*SignResponse\) GetSignature\(\) \[\]byte](<#SignResponse.GetSignature>) + - [func \(x \*SignResponse\) GetSignatureString\(\) string](<#SignResponse.GetSignatureString>) + - [func \(\*SignResponse\) ProtoMessage\(\)](<#SignResponse.ProtoMessage>) + - [func \(x \*SignResponse\) ProtoReflect\(\) protoreflect.Message](<#SignResponse.ProtoReflect>) + - [func \(x \*SignResponse\) Reset\(\)](<#SignResponse.Reset>) + - [func \(x \*SignResponse\) String\(\) string](<#SignResponse.String>) +- [type SignatureFormat](<#SignatureFormat>) + - [func \(SignatureFormat\) Descriptor\(\) protoreflect.EnumDescriptor](<#SignatureFormat.Descriptor>) + - [func \(x SignatureFormat\) Enum\(\) \*SignatureFormat](<#SignatureFormat.Enum>) + - [func \(SignatureFormat\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#SignatureFormat.EnumDescriptor>) + - [func \(x SignatureFormat\) Number\(\) protoreflect.EnumNumber](<#SignatureFormat.Number>) + - [func \(x SignatureFormat\) String\(\) string](<#SignatureFormat.String>) + - [func \(SignatureFormat\) Type\(\) protoreflect.EnumType](<#SignatureFormat.Type>) +- [type SimpleGuardServiceClient](<#SimpleGuardServiceClient>) + - [func NewSimpleGuardServiceClient\(cc grpc.ClientConnInterface\) SimpleGuardServiceClient](<#NewSimpleGuardServiceClient>) +- [type SimpleGuardServiceServer](<#SimpleGuardServiceServer>) +- [type StartKeeperRequest](<#StartKeeperRequest>) + - [func \(\*StartKeeperRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#StartKeeperRequest.Descriptor>) + - [func \(x \*StartKeeperRequest\) GetAgentId\(\) string](<#StartKeeperRequest.GetAgentId>) + - [func \(x \*StartKeeperRequest\) GetApiKey\(\) string](<#StartKeeperRequest.GetApiKey>) + - [func \(x \*StartKeeperRequest\) GetCaUrl\(\) string](<#StartKeeperRequest.GetCaUrl>) + - [func \(x \*StartKeeperRequest\) GetCheckIntervalSeconds\(\) int32](<#StartKeeperRequest.GetCheckIntervalSeconds>) + - [func \(x \*StartKeeperRequest\) GetDomain\(\) string](<#StartKeeperRequest.GetDomain>) + - [func \(x \*StartKeeperRequest\) GetMode\(\) KeeperMode](<#StartKeeperRequest.GetMode>) + - [func \(x \*StartKeeperRequest\) GetOutputFile\(\) string](<#StartKeeperRequest.GetOutputFile>) + - [func \(x \*StartKeeperRequest\) GetPrivateKeyPath\(\) string](<#StartKeeperRequest.GetPrivateKeyPath>) + - [func \(x \*StartKeeperRequest\) GetRenewBeforeSeconds\(\) int32](<#StartKeeperRequest.GetRenewBeforeSeconds>) + - [func \(x \*StartKeeperRequest\) GetTrustLevel\(\) TrustLevel](<#StartKeeperRequest.GetTrustLevel>) + - [func \(x \*StartKeeperRequest\) GetTtlSeconds\(\) int32](<#StartKeeperRequest.GetTtlSeconds>) + - [func \(\*StartKeeperRequest\) ProtoMessage\(\)](<#StartKeeperRequest.ProtoMessage>) + - [func \(x \*StartKeeperRequest\) ProtoReflect\(\) protoreflect.Message](<#StartKeeperRequest.ProtoReflect>) + - [func \(x \*StartKeeperRequest\) Reset\(\)](<#StartKeeperRequest.Reset>) + - [func \(x \*StartKeeperRequest\) String\(\) string](<#StartKeeperRequest.String>) +- [type Timestamp](<#Timestamp>) + - [func \(\*Timestamp\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#Timestamp.Descriptor>) + - [func \(x \*Timestamp\) GetValue\(\) string](<#Timestamp.GetValue>) + - [func \(\*Timestamp\) ProtoMessage\(\)](<#Timestamp.ProtoMessage>) + - [func \(x \*Timestamp\) ProtoReflect\(\) protoreflect.Message](<#Timestamp.ProtoReflect>) + - [func \(x \*Timestamp\) Reset\(\)](<#Timestamp.Reset>) + - [func \(x \*Timestamp\) String\(\) string](<#Timestamp.String>) +- [type TrustLevel](<#TrustLevel>) + - [func \(TrustLevel\) Descriptor\(\) protoreflect.EnumDescriptor](<#TrustLevel.Descriptor>) + - [func \(x TrustLevel\) Enum\(\) \*TrustLevel](<#TrustLevel.Enum>) + - [func \(TrustLevel\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#TrustLevel.EnumDescriptor>) + - [func \(x TrustLevel\) Number\(\) protoreflect.EnumNumber](<#TrustLevel.Number>) + - [func \(x TrustLevel\) String\(\) string](<#TrustLevel.String>) + - [func \(TrustLevel\) Type\(\) protoreflect.EnumType](<#TrustLevel.Type>) +- [type TrustStoreServiceClient](<#TrustStoreServiceClient>) + - [func NewTrustStoreServiceClient\(cc grpc.ClientConnInterface\) TrustStoreServiceClient](<#NewTrustStoreServiceClient>) +- [type TrustStoreServiceServer](<#TrustStoreServiceServer>) +- [type TrustedKey](<#TrustedKey>) + - [func \(\*TrustedKey\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#TrustedKey.Descriptor>) + - [func \(x \*TrustedKey\) GetAddedAt\(\) \*Timestamp](<#TrustedKey.GetAddedAt>) + - [func \(x \*TrustedKey\) GetAlgorithm\(\) KeyAlgorithm](<#TrustedKey.GetAlgorithm>) + - [func \(x \*TrustedKey\) GetDid\(\) string](<#TrustedKey.GetDid>) + - [func \(x \*TrustedKey\) GetExpiresAt\(\) \*Timestamp](<#TrustedKey.GetExpiresAt>) + - [func \(x \*TrustedKey\) GetFormat\(\) KeyFormat](<#TrustedKey.GetFormat>) + - [func \(x \*TrustedKey\) GetKeyId\(\) string](<#TrustedKey.GetKeyId>) + - [func \(x \*TrustedKey\) GetMetadata\(\) map\[string\]string](<#TrustedKey.GetMetadata>) + - [func \(x \*TrustedKey\) GetPublicKey\(\) \[\]byte](<#TrustedKey.GetPublicKey>) + - [func \(\*TrustedKey\) ProtoMessage\(\)](<#TrustedKey.ProtoMessage>) + - [func \(x \*TrustedKey\) ProtoReflect\(\) protoreflect.Message](<#TrustedKey.ProtoReflect>) + - [func \(x \*TrustedKey\) Reset\(\)](<#TrustedKey.Reset>) + - [func \(x \*TrustedKey\) String\(\) string](<#TrustedKey.String>) +- [type UnimplementedBadgeServiceServer](<#UnimplementedBadgeServiceServer>) + - [func \(UnimplementedBadgeServiceServer\) CreateDVOrder\(context.Context, \*CreateDVOrderRequest\) \(\*CreateDVOrderResponse, error\)](<#UnimplementedBadgeServiceServer.CreateDVOrder>) + - [func \(UnimplementedBadgeServiceServer\) FinalizeDVOrder\(context.Context, \*FinalizeDVOrderRequest\) \(\*FinalizeDVOrderResponse, error\)](<#UnimplementedBadgeServiceServer.FinalizeDVOrder>) + - [func \(UnimplementedBadgeServiceServer\) GetDVOrder\(context.Context, \*GetDVOrderRequest\) \(\*GetDVOrderResponse, error\)](<#UnimplementedBadgeServiceServer.GetDVOrder>) + - [func \(UnimplementedBadgeServiceServer\) ParseBadge\(context.Context, \*ParseBadgeRequest\) \(\*ParseBadgeResponse, error\)](<#UnimplementedBadgeServiceServer.ParseBadge>) + - [func \(UnimplementedBadgeServiceServer\) RequestBadge\(context.Context, \*RequestBadgeRequest\) \(\*RequestBadgeResponse, error\)](<#UnimplementedBadgeServiceServer.RequestBadge>) + - [func \(UnimplementedBadgeServiceServer\) RequestPoPBadge\(context.Context, \*RequestPoPBadgeRequest\) \(\*RequestPoPBadgeResponse, error\)](<#UnimplementedBadgeServiceServer.RequestPoPBadge>) + - [func \(UnimplementedBadgeServiceServer\) SignBadge\(context.Context, \*SignBadgeRequest\) \(\*SignBadgeResponse, error\)](<#UnimplementedBadgeServiceServer.SignBadge>) + - [func \(UnimplementedBadgeServiceServer\) StartKeeper\(\*StartKeeperRequest, grpc.ServerStreamingServer\[KeeperEvent\]\) error](<#UnimplementedBadgeServiceServer.StartKeeper>) + - [func \(UnimplementedBadgeServiceServer\) VerifyBadge\(context.Context, \*VerifyBadgeRequest\) \(\*VerifyBadgeResponse, error\)](<#UnimplementedBadgeServiceServer.VerifyBadge>) + - [func \(UnimplementedBadgeServiceServer\) VerifyBadgeWithOptions\(context.Context, \*VerifyBadgeWithOptionsRequest\) \(\*VerifyBadgeResponse, error\)](<#UnimplementedBadgeServiceServer.VerifyBadgeWithOptions>) +- [type UnimplementedDIDServiceServer](<#UnimplementedDIDServiceServer>) + - [func \(UnimplementedDIDServiceServer\) DocumentURL\(context.Context, \*DocumentURLRequest\) \(\*DocumentURLResponse, error\)](<#UnimplementedDIDServiceServer.DocumentURL>) + - [func \(UnimplementedDIDServiceServer\) IsAgentDID\(context.Context, \*IsAgentDIDRequest\) \(\*IsAgentDIDResponse, error\)](<#UnimplementedDIDServiceServer.IsAgentDID>) + - [func \(UnimplementedDIDServiceServer\) NewAgentDID\(context.Context, \*NewAgentDIDRequest\) \(\*NewAgentDIDResponse, error\)](<#UnimplementedDIDServiceServer.NewAgentDID>) + - [func \(UnimplementedDIDServiceServer\) NewCapiscIOAgentDID\(context.Context, \*NewCapiscIOAgentDIDRequest\) \(\*NewAgentDIDResponse, error\)](<#UnimplementedDIDServiceServer.NewCapiscIOAgentDID>) + - [func \(UnimplementedDIDServiceServer\) Parse\(context.Context, \*ParseDIDRequest\) \(\*ParseDIDResponse, error\)](<#UnimplementedDIDServiceServer.Parse>) +- [type UnimplementedMCPServiceServer](<#UnimplementedMCPServiceServer>) + - [func \(UnimplementedMCPServiceServer\) EvaluatePolicyDecision\(context.Context, \*PolicyDecisionRequest\) \(\*PolicyDecisionResponse, error\)](<#UnimplementedMCPServiceServer.EvaluatePolicyDecision>) + - [func \(UnimplementedMCPServiceServer\) EvaluateToolAccess\(context.Context, \*EvaluateToolAccessRequest\) \(\*EvaluateToolAccessResponse, error\)](<#UnimplementedMCPServiceServer.EvaluateToolAccess>) + - [func \(UnimplementedMCPServiceServer\) Health\(context.Context, \*MCPHealthRequest\) \(\*MCPHealthResponse, error\)](<#UnimplementedMCPServiceServer.Health>) + - [func \(UnimplementedMCPServiceServer\) ParseServerIdentity\(context.Context, \*ParseServerIdentityRequest\) \(\*ParseServerIdentityResponse, error\)](<#UnimplementedMCPServiceServer.ParseServerIdentity>) + - [func \(UnimplementedMCPServiceServer\) VerifyServerIdentity\(context.Context, \*VerifyServerIdentityRequest\) \(\*VerifyServerIdentityResponse, error\)](<#UnimplementedMCPServiceServer.VerifyServerIdentity>) +- [type UnimplementedRegistryServiceServer](<#UnimplementedRegistryServiceServer>) + - [func \(UnimplementedRegistryServiceServer\) DeregisterAgent\(context.Context, \*DeregisterAgentRequest\) \(\*DeregisterAgentResponse, error\)](<#UnimplementedRegistryServiceServer.DeregisterAgent>) + - [func \(UnimplementedRegistryServiceServer\) GetAgent\(context.Context, \*GetAgentRequest\) \(\*GetAgentResponse, error\)](<#UnimplementedRegistryServiceServer.GetAgent>) + - [func \(UnimplementedRegistryServiceServer\) GetStats\(context.Context, \*GetStatsRequest\) \(\*GetStatsResponse, error\)](<#UnimplementedRegistryServiceServer.GetStats>) + - [func \(UnimplementedRegistryServiceServer\) ListAgents\(context.Context, \*ListAgentsRequest\) \(\*ListAgentsResponse, error\)](<#UnimplementedRegistryServiceServer.ListAgents>) + - [func \(UnimplementedRegistryServiceServer\) Ping\(context.Context, \*PingRequest\) \(\*PingResponse, error\)](<#UnimplementedRegistryServiceServer.Ping>) + - [func \(UnimplementedRegistryServiceServer\) RegisterAgent\(context.Context, \*RegisterAgentRequest\) \(\*RegisterAgentResponse, error\)](<#UnimplementedRegistryServiceServer.RegisterAgent>) + - [func \(UnimplementedRegistryServiceServer\) SearchAgents\(context.Context, \*SearchAgentsRequest\) \(\*SearchAgentsResponse, error\)](<#UnimplementedRegistryServiceServer.SearchAgents>) + - [func \(UnimplementedRegistryServiceServer\) UpdateAgent\(context.Context, \*UpdateAgentRequest\) \(\*UpdateAgentResponse, error\)](<#UnimplementedRegistryServiceServer.UpdateAgent>) + - [func \(UnimplementedRegistryServiceServer\) VerifyRegistration\(context.Context, \*VerifyRegistrationRequest\) \(\*VerifyRegistrationResponse, error\)](<#UnimplementedRegistryServiceServer.VerifyRegistration>) +- [type UnimplementedRevocationServiceServer](<#UnimplementedRevocationServiceServer>) + - [func \(UnimplementedRevocationServiceServer\) ClearCache\(context.Context, \*ClearCacheRequest\) \(\*ClearCacheResponse, error\)](<#UnimplementedRevocationServiceServer.ClearCache>) + - [func \(UnimplementedRevocationServiceServer\) FetchRevocationList\(context.Context, \*FetchRevocationListRequest\) \(\*FetchRevocationListResponse, error\)](<#UnimplementedRevocationServiceServer.FetchRevocationList>) + - [func \(UnimplementedRevocationServiceServer\) GetCacheStats\(context.Context, \*GetCacheStatsRequest\) \(\*GetCacheStatsResponse, error\)](<#UnimplementedRevocationServiceServer.GetCacheStats>) + - [func \(UnimplementedRevocationServiceServer\) IsRevoked\(context.Context, \*IsRevokedRequest\) \(\*IsRevokedResponse, error\)](<#UnimplementedRevocationServiceServer.IsRevoked>) + - [func \(UnimplementedRevocationServiceServer\) ListRevocations\(context.Context, \*ListRevocationsRequest\) \(\*ListRevocationsResponse, error\)](<#UnimplementedRevocationServiceServer.ListRevocations>) + - [func \(UnimplementedRevocationServiceServer\) Revoke\(context.Context, \*RevokeRequest\) \(\*RevokeResponse, error\)](<#UnimplementedRevocationServiceServer.Revoke>) + - [func \(UnimplementedRevocationServiceServer\) Unrevoke\(context.Context, \*UnrevokeRequest\) \(\*UnrevokeResponse, error\)](<#UnimplementedRevocationServiceServer.Unrevoke>) +- [type UnimplementedScoringServiceServer](<#UnimplementedScoringServiceServer>) + - [func \(UnimplementedScoringServiceServer\) AggregateScores\(context.Context, \*AggregateScoresRequest\) \(\*AggregateScoresResponse, error\)](<#UnimplementedScoringServiceServer.AggregateScores>) + - [func \(UnimplementedScoringServiceServer\) GetRuleSet\(context.Context, \*GetRuleSetRequest\) \(\*GetRuleSetResponse, error\)](<#UnimplementedScoringServiceServer.GetRuleSet>) + - [func \(UnimplementedScoringServiceServer\) ListRuleSets\(context.Context, \*ListRuleSetsRequest\) \(\*ListRuleSetsResponse, error\)](<#UnimplementedScoringServiceServer.ListRuleSets>) + - [func \(UnimplementedScoringServiceServer\) ScoreAgentCard\(context.Context, \*ScoreAgentCardRequest\) \(\*ScoreAgentCardResponse, error\)](<#UnimplementedScoringServiceServer.ScoreAgentCard>) + - [func \(UnimplementedScoringServiceServer\) ValidateRule\(context.Context, \*ValidateRuleRequest\) \(\*ValidateRuleResponse, error\)](<#UnimplementedScoringServiceServer.ValidateRule>) +- [type UnimplementedSimpleGuardServiceServer](<#UnimplementedSimpleGuardServiceServer>) + - [func \(UnimplementedSimpleGuardServiceServer\) ExportKey\(context.Context, \*ExportKeyRequest\) \(\*ExportKeyResponse, error\)](<#UnimplementedSimpleGuardServiceServer.ExportKey>) + - [func \(UnimplementedSimpleGuardServiceServer\) GenerateKeyPair\(context.Context, \*GenerateKeyPairRequest\) \(\*GenerateKeyPairResponse, error\)](<#UnimplementedSimpleGuardServiceServer.GenerateKeyPair>) + - [func \(UnimplementedSimpleGuardServiceServer\) GetKeyInfo\(context.Context, \*GetKeyInfoRequest\) \(\*GetKeyInfoResponse, error\)](<#UnimplementedSimpleGuardServiceServer.GetKeyInfo>) + - [func \(UnimplementedSimpleGuardServiceServer\) Init\(context.Context, \*InitRequest\) \(\*InitResponse, error\)](<#UnimplementedSimpleGuardServiceServer.Init>) + - [func \(UnimplementedSimpleGuardServiceServer\) LoadKey\(context.Context, \*LoadKeyRequest\) \(\*LoadKeyResponse, error\)](<#UnimplementedSimpleGuardServiceServer.LoadKey>) + - [func \(UnimplementedSimpleGuardServiceServer\) Sign\(context.Context, \*SignRequest\) \(\*SignResponse, error\)](<#UnimplementedSimpleGuardServiceServer.Sign>) + - [func \(UnimplementedSimpleGuardServiceServer\) SignAttached\(context.Context, \*SignAttachedRequest\) \(\*SignAttachedResponse, error\)](<#UnimplementedSimpleGuardServiceServer.SignAttached>) + - [func \(UnimplementedSimpleGuardServiceServer\) Verify\(context.Context, \*VerifyRequest\) \(\*VerifyResponse, error\)](<#UnimplementedSimpleGuardServiceServer.Verify>) + - [func \(UnimplementedSimpleGuardServiceServer\) VerifyAttached\(context.Context, \*VerifyAttachedRequest\) \(\*VerifyAttachedResponse, error\)](<#UnimplementedSimpleGuardServiceServer.VerifyAttached>) +- [type UnimplementedTrustStoreServiceServer](<#UnimplementedTrustStoreServiceServer>) + - [func \(UnimplementedTrustStoreServiceServer\) AddKey\(context.Context, \*AddKeyRequest\) \(\*AddKeyResponse, error\)](<#UnimplementedTrustStoreServiceServer.AddKey>) + - [func \(UnimplementedTrustStoreServiceServer\) Clear\(context.Context, \*ClearKeysRequest\) \(\*ClearKeysResponse, error\)](<#UnimplementedTrustStoreServiceServer.Clear>) + - [func \(UnimplementedTrustStoreServiceServer\) ExportToDirectory\(context.Context, \*ExportToDirectoryRequest\) \(\*ExportToDirectoryResponse, error\)](<#UnimplementedTrustStoreServiceServer.ExportToDirectory>) + - [func \(UnimplementedTrustStoreServiceServer\) GetKey\(context.Context, \*GetKeyRequest\) \(\*GetKeyResponse, error\)](<#UnimplementedTrustStoreServiceServer.GetKey>) + - [func \(UnimplementedTrustStoreServiceServer\) ImportFromDirectory\(context.Context, \*ImportFromDirectoryRequest\) \(\*ImportFromDirectoryResponse, error\)](<#UnimplementedTrustStoreServiceServer.ImportFromDirectory>) + - [func \(UnimplementedTrustStoreServiceServer\) IsTrusted\(context.Context, \*IsTrustedRequest\) \(\*IsTrustedResponse, error\)](<#UnimplementedTrustStoreServiceServer.IsTrusted>) + - [func \(UnimplementedTrustStoreServiceServer\) ListKeys\(context.Context, \*ListKeysRequest\) \(\*ListKeysResponse, error\)](<#UnimplementedTrustStoreServiceServer.ListKeys>) + - [func \(UnimplementedTrustStoreServiceServer\) RemoveKey\(context.Context, \*RemoveKeyRequest\) \(\*RemoveKeyResponse, error\)](<#UnimplementedTrustStoreServiceServer.RemoveKey>) +- [type UnrevokeRequest](<#UnrevokeRequest>) + - [func \(\*UnrevokeRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#UnrevokeRequest.Descriptor>) + - [func \(x \*UnrevokeRequest\) GetSubject\(\) string](<#UnrevokeRequest.GetSubject>) + - [func \(\*UnrevokeRequest\) ProtoMessage\(\)](<#UnrevokeRequest.ProtoMessage>) + - [func \(x \*UnrevokeRequest\) ProtoReflect\(\) protoreflect.Message](<#UnrevokeRequest.ProtoReflect>) + - [func \(x \*UnrevokeRequest\) Reset\(\)](<#UnrevokeRequest.Reset>) + - [func \(x \*UnrevokeRequest\) String\(\) string](<#UnrevokeRequest.String>) +- [type UnrevokeResponse](<#UnrevokeResponse>) + - [func \(\*UnrevokeResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#UnrevokeResponse.Descriptor>) + - [func \(x \*UnrevokeResponse\) GetErrorMessage\(\) string](<#UnrevokeResponse.GetErrorMessage>) + - [func \(x \*UnrevokeResponse\) GetWasRevoked\(\) bool](<#UnrevokeResponse.GetWasRevoked>) + - [func \(\*UnrevokeResponse\) ProtoMessage\(\)](<#UnrevokeResponse.ProtoMessage>) + - [func \(x \*UnrevokeResponse\) ProtoReflect\(\) protoreflect.Message](<#UnrevokeResponse.ProtoReflect>) + - [func \(x \*UnrevokeResponse\) Reset\(\)](<#UnrevokeResponse.Reset>) + - [func \(x \*UnrevokeResponse\) String\(\) string](<#UnrevokeResponse.String>) +- [type UnsafeBadgeServiceServer](<#UnsafeBadgeServiceServer>) +- [type UnsafeDIDServiceServer](<#UnsafeDIDServiceServer>) +- [type UnsafeMCPServiceServer](<#UnsafeMCPServiceServer>) +- [type UnsafeRegistryServiceServer](<#UnsafeRegistryServiceServer>) +- [type UnsafeRevocationServiceServer](<#UnsafeRevocationServiceServer>) +- [type UnsafeScoringServiceServer](<#UnsafeScoringServiceServer>) +- [type UnsafeSimpleGuardServiceServer](<#UnsafeSimpleGuardServiceServer>) +- [type UnsafeTrustStoreServiceServer](<#UnsafeTrustStoreServiceServer>) +- [type UpdateAgentRequest](<#UpdateAgentRequest>) + - [func \(\*UpdateAgentRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#UpdateAgentRequest.Descriptor>) + - [func \(x \*UpdateAgentRequest\) GetAgentCardJson\(\) string](<#UpdateAgentRequest.GetAgentCardJson>) + - [func \(x \*UpdateAgentRequest\) GetDid\(\) string](<#UpdateAgentRequest.GetDid>) + - [func \(x \*UpdateAgentRequest\) GetMetadata\(\) map\[string\]string](<#UpdateAgentRequest.GetMetadata>) + - [func \(x \*UpdateAgentRequest\) GetSignedBadge\(\) string](<#UpdateAgentRequest.GetSignedBadge>) + - [func \(x \*UpdateAgentRequest\) GetTags\(\) \[\]string](<#UpdateAgentRequest.GetTags>) + - [func \(\*UpdateAgentRequest\) ProtoMessage\(\)](<#UpdateAgentRequest.ProtoMessage>) + - [func \(x \*UpdateAgentRequest\) ProtoReflect\(\) protoreflect.Message](<#UpdateAgentRequest.ProtoReflect>) + - [func \(x \*UpdateAgentRequest\) Reset\(\)](<#UpdateAgentRequest.Reset>) + - [func \(x \*UpdateAgentRequest\) String\(\) string](<#UpdateAgentRequest.String>) +- [type UpdateAgentResponse](<#UpdateAgentResponse>) + - [func \(\*UpdateAgentResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#UpdateAgentResponse.Descriptor>) + - [func \(x \*UpdateAgentResponse\) GetAgent\(\) \*RegisteredAgent](<#UpdateAgentResponse.GetAgent>) + - [func \(x \*UpdateAgentResponse\) GetErrorMessage\(\) string](<#UpdateAgentResponse.GetErrorMessage>) + - [func \(\*UpdateAgentResponse\) ProtoMessage\(\)](<#UpdateAgentResponse.ProtoMessage>) + - [func \(x \*UpdateAgentResponse\) ProtoReflect\(\) protoreflect.Message](<#UpdateAgentResponse.ProtoReflect>) + - [func \(x \*UpdateAgentResponse\) Reset\(\)](<#UpdateAgentResponse.Reset>) + - [func \(x \*UpdateAgentResponse\) String\(\) string](<#UpdateAgentResponse.String>) +- [type ValidateRuleRequest](<#ValidateRuleRequest>) + - [func \(\*ValidateRuleRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ValidateRuleRequest.Descriptor>) + - [func \(x \*ValidateRuleRequest\) GetAgentCardJson\(\) string](<#ValidateRuleRequest.GetAgentCardJson>) + - [func \(x \*ValidateRuleRequest\) GetRuleId\(\) string](<#ValidateRuleRequest.GetRuleId>) + - [func \(\*ValidateRuleRequest\) ProtoMessage\(\)](<#ValidateRuleRequest.ProtoMessage>) + - [func \(x \*ValidateRuleRequest\) ProtoReflect\(\) protoreflect.Message](<#ValidateRuleRequest.ProtoReflect>) + - [func \(x \*ValidateRuleRequest\) Reset\(\)](<#ValidateRuleRequest.Reset>) + - [func \(x \*ValidateRuleRequest\) String\(\) string](<#ValidateRuleRequest.String>) +- [type ValidateRuleResponse](<#ValidateRuleResponse>) + - [func \(\*ValidateRuleResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ValidateRuleResponse.Descriptor>) + - [func \(x \*ValidateRuleResponse\) GetErrorMessage\(\) string](<#ValidateRuleResponse.GetErrorMessage>) + - [func \(x \*ValidateRuleResponse\) GetResult\(\) \*RuleResult](<#ValidateRuleResponse.GetResult>) + - [func \(\*ValidateRuleResponse\) ProtoMessage\(\)](<#ValidateRuleResponse.ProtoMessage>) + - [func \(x \*ValidateRuleResponse\) ProtoReflect\(\) protoreflect.Message](<#ValidateRuleResponse.ProtoReflect>) + - [func \(x \*ValidateRuleResponse\) Reset\(\)](<#ValidateRuleResponse.Reset>) + - [func \(x \*ValidateRuleResponse\) String\(\) string](<#ValidateRuleResponse.String>) +- [type ValidationIssue](<#ValidationIssue>) + - [func \(\*ValidationIssue\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ValidationIssue.Descriptor>) + - [func \(x \*ValidationIssue\) GetCode\(\) string](<#ValidationIssue.GetCode>) + - [func \(x \*ValidationIssue\) GetDetails\(\) string](<#ValidationIssue.GetDetails>) + - [func \(x \*ValidationIssue\) GetField\(\) string](<#ValidationIssue.GetField>) + - [func \(x \*ValidationIssue\) GetMessage\(\) string](<#ValidationIssue.GetMessage>) + - [func \(x \*ValidationIssue\) GetSeverity\(\) ValidationSeverity](<#ValidationIssue.GetSeverity>) + - [func \(\*ValidationIssue\) ProtoMessage\(\)](<#ValidationIssue.ProtoMessage>) + - [func \(x \*ValidationIssue\) ProtoReflect\(\) protoreflect.Message](<#ValidationIssue.ProtoReflect>) + - [func \(x \*ValidationIssue\) Reset\(\)](<#ValidationIssue.Reset>) + - [func \(x \*ValidationIssue\) String\(\) string](<#ValidationIssue.String>) +- [type ValidationResult](<#ValidationResult>) + - [func \(\*ValidationResult\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#ValidationResult.Descriptor>) + - [func \(x \*ValidationResult\) GetIssues\(\) \[\]\*ValidationIssue](<#ValidationResult.GetIssues>) + - [func \(x \*ValidationResult\) GetValid\(\) bool](<#ValidationResult.GetValid>) + - [func \(x \*ValidationResult\) GetValidatedAt\(\) string](<#ValidationResult.GetValidatedAt>) + - [func \(\*ValidationResult\) ProtoMessage\(\)](<#ValidationResult.ProtoMessage>) + - [func \(x \*ValidationResult\) ProtoReflect\(\) protoreflect.Message](<#ValidationResult.ProtoReflect>) + - [func \(x \*ValidationResult\) Reset\(\)](<#ValidationResult.Reset>) + - [func \(x \*ValidationResult\) String\(\) string](<#ValidationResult.String>) +- [type ValidationSeverity](<#ValidationSeverity>) + - [func \(ValidationSeverity\) Descriptor\(\) protoreflect.EnumDescriptor](<#ValidationSeverity.Descriptor>) + - [func \(x ValidationSeverity\) Enum\(\) \*ValidationSeverity](<#ValidationSeverity.Enum>) + - [func \(ValidationSeverity\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#ValidationSeverity.EnumDescriptor>) + - [func \(x ValidationSeverity\) Number\(\) protoreflect.EnumNumber](<#ValidationSeverity.Number>) + - [func \(x ValidationSeverity\) String\(\) string](<#ValidationSeverity.String>) + - [func \(ValidationSeverity\) Type\(\) protoreflect.EnumType](<#ValidationSeverity.Type>) +- [type VerifyAttachedRequest](<#VerifyAttachedRequest>) + - [func \(\*VerifyAttachedRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyAttachedRequest.Descriptor>) + - [func \(x \*VerifyAttachedRequest\) GetDetachedPayload\(\) \[\]byte](<#VerifyAttachedRequest.GetDetachedPayload>) + - [func \(x \*VerifyAttachedRequest\) GetExpectedSigner\(\) string](<#VerifyAttachedRequest.GetExpectedSigner>) + - [func \(x \*VerifyAttachedRequest\) GetJws\(\) string](<#VerifyAttachedRequest.GetJws>) + - [func \(\*VerifyAttachedRequest\) ProtoMessage\(\)](<#VerifyAttachedRequest.ProtoMessage>) + - [func \(x \*VerifyAttachedRequest\) ProtoReflect\(\) protoreflect.Message](<#VerifyAttachedRequest.ProtoReflect>) + - [func \(x \*VerifyAttachedRequest\) Reset\(\)](<#VerifyAttachedRequest.Reset>) + - [func \(x \*VerifyAttachedRequest\) String\(\) string](<#VerifyAttachedRequest.String>) +- [type VerifyAttachedResponse](<#VerifyAttachedResponse>) + - [func \(\*VerifyAttachedResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyAttachedResponse.Descriptor>) + - [func \(x \*VerifyAttachedResponse\) GetErrorMessage\(\) string](<#VerifyAttachedResponse.GetErrorMessage>) + - [func \(x \*VerifyAttachedResponse\) GetKeyId\(\) string](<#VerifyAttachedResponse.GetKeyId>) + - [func \(x \*VerifyAttachedResponse\) GetPayload\(\) \[\]byte](<#VerifyAttachedResponse.GetPayload>) + - [func \(x \*VerifyAttachedResponse\) GetSignerDid\(\) string](<#VerifyAttachedResponse.GetSignerDid>) + - [func \(x \*VerifyAttachedResponse\) GetValid\(\) bool](<#VerifyAttachedResponse.GetValid>) + - [func \(x \*VerifyAttachedResponse\) GetValidation\(\) \*ValidationResult](<#VerifyAttachedResponse.GetValidation>) + - [func \(\*VerifyAttachedResponse\) ProtoMessage\(\)](<#VerifyAttachedResponse.ProtoMessage>) + - [func \(x \*VerifyAttachedResponse\) ProtoReflect\(\) protoreflect.Message](<#VerifyAttachedResponse.ProtoReflect>) + - [func \(x \*VerifyAttachedResponse\) Reset\(\)](<#VerifyAttachedResponse.Reset>) + - [func \(x \*VerifyAttachedResponse\) String\(\) string](<#VerifyAttachedResponse.String>) +- [type VerifyBadgeRequest](<#VerifyBadgeRequest>) + - [func \(\*VerifyBadgeRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyBadgeRequest.Descriptor>) + - [func \(x \*VerifyBadgeRequest\) GetPublicKeyJwk\(\) string](<#VerifyBadgeRequest.GetPublicKeyJwk>) + - [func \(x \*VerifyBadgeRequest\) GetToken\(\) string](<#VerifyBadgeRequest.GetToken>) + - [func \(\*VerifyBadgeRequest\) ProtoMessage\(\)](<#VerifyBadgeRequest.ProtoMessage>) + - [func \(x \*VerifyBadgeRequest\) ProtoReflect\(\) protoreflect.Message](<#VerifyBadgeRequest.ProtoReflect>) + - [func \(x \*VerifyBadgeRequest\) Reset\(\)](<#VerifyBadgeRequest.Reset>) + - [func \(x \*VerifyBadgeRequest\) String\(\) string](<#VerifyBadgeRequest.String>) +- [type VerifyBadgeResponse](<#VerifyBadgeResponse>) + - [func \(\*VerifyBadgeResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyBadgeResponse.Descriptor>) + - [func \(x \*VerifyBadgeResponse\) GetClaims\(\) \*BadgeClaims](<#VerifyBadgeResponse.GetClaims>) + - [func \(x \*VerifyBadgeResponse\) GetErrorCode\(\) string](<#VerifyBadgeResponse.GetErrorCode>) + - [func \(x \*VerifyBadgeResponse\) GetErrorMessage\(\) string](<#VerifyBadgeResponse.GetErrorMessage>) + - [func \(x \*VerifyBadgeResponse\) GetModeUsed\(\) VerifyMode](<#VerifyBadgeResponse.GetModeUsed>) + - [func \(x \*VerifyBadgeResponse\) GetValid\(\) bool](<#VerifyBadgeResponse.GetValid>) + - [func \(x \*VerifyBadgeResponse\) GetWarnings\(\) \[\]string](<#VerifyBadgeResponse.GetWarnings>) + - [func \(\*VerifyBadgeResponse\) ProtoMessage\(\)](<#VerifyBadgeResponse.ProtoMessage>) + - [func \(x \*VerifyBadgeResponse\) ProtoReflect\(\) protoreflect.Message](<#VerifyBadgeResponse.ProtoReflect>) + - [func \(x \*VerifyBadgeResponse\) Reset\(\)](<#VerifyBadgeResponse.Reset>) + - [func \(x \*VerifyBadgeResponse\) String\(\) string](<#VerifyBadgeResponse.String>) +- [type VerifyBadgeWithOptionsRequest](<#VerifyBadgeWithOptionsRequest>) + - [func \(\*VerifyBadgeWithOptionsRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyBadgeWithOptionsRequest.Descriptor>) + - [func \(x \*VerifyBadgeWithOptionsRequest\) GetOptions\(\) \*VerifyOptions](<#VerifyBadgeWithOptionsRequest.GetOptions>) + - [func \(x \*VerifyBadgeWithOptionsRequest\) GetToken\(\) string](<#VerifyBadgeWithOptionsRequest.GetToken>) + - [func \(\*VerifyBadgeWithOptionsRequest\) ProtoMessage\(\)](<#VerifyBadgeWithOptionsRequest.ProtoMessage>) + - [func \(x \*VerifyBadgeWithOptionsRequest\) ProtoReflect\(\) protoreflect.Message](<#VerifyBadgeWithOptionsRequest.ProtoReflect>) + - [func \(x \*VerifyBadgeWithOptionsRequest\) Reset\(\)](<#VerifyBadgeWithOptionsRequest.Reset>) + - [func \(x \*VerifyBadgeWithOptionsRequest\) String\(\) string](<#VerifyBadgeWithOptionsRequest.String>) +- [type VerifyMode](<#VerifyMode>) + - [func \(VerifyMode\) Descriptor\(\) protoreflect.EnumDescriptor](<#VerifyMode.Descriptor>) + - [func \(x VerifyMode\) Enum\(\) \*VerifyMode](<#VerifyMode.Enum>) + - [func \(VerifyMode\) EnumDescriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyMode.EnumDescriptor>) + - [func \(x VerifyMode\) Number\(\) protoreflect.EnumNumber](<#VerifyMode.Number>) + - [func \(x VerifyMode\) String\(\) string](<#VerifyMode.String>) + - [func \(VerifyMode\) Type\(\) protoreflect.EnumType](<#VerifyMode.Type>) +- [type VerifyOptions](<#VerifyOptions>) + - [func \(\*VerifyOptions\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyOptions.Descriptor>) + - [func \(x \*VerifyOptions\) GetAcceptSelfSigned\(\) bool](<#VerifyOptions.GetAcceptSelfSigned>) + - [func \(x \*VerifyOptions\) GetAudience\(\) string](<#VerifyOptions.GetAudience>) + - [func \(x \*VerifyOptions\) GetClockToleranceSeconds\(\) int64](<#VerifyOptions.GetClockToleranceSeconds>) + - [func \(x \*VerifyOptions\) GetFailOpen\(\) bool](<#VerifyOptions.GetFailOpen>) + - [func \(x \*VerifyOptions\) GetMode\(\) VerifyMode](<#VerifyOptions.GetMode>) + - [func \(x \*VerifyOptions\) GetRegistryUrl\(\) string](<#VerifyOptions.GetRegistryUrl>) + - [func \(x \*VerifyOptions\) GetSkipAgentStatus\(\) bool](<#VerifyOptions.GetSkipAgentStatus>) + - [func \(x \*VerifyOptions\) GetSkipRevocation\(\) bool](<#VerifyOptions.GetSkipRevocation>) + - [func \(x \*VerifyOptions\) GetStaleThresholdSeconds\(\) int64](<#VerifyOptions.GetStaleThresholdSeconds>) + - [func \(x \*VerifyOptions\) GetTrustedIssuers\(\) \[\]string](<#VerifyOptions.GetTrustedIssuers>) + - [func \(\*VerifyOptions\) ProtoMessage\(\)](<#VerifyOptions.ProtoMessage>) + - [func \(x \*VerifyOptions\) ProtoReflect\(\) protoreflect.Message](<#VerifyOptions.ProtoReflect>) + - [func \(x \*VerifyOptions\) Reset\(\)](<#VerifyOptions.Reset>) + - [func \(x \*VerifyOptions\) String\(\) string](<#VerifyOptions.String>) +- [type VerifyRegistrationRequest](<#VerifyRegistrationRequest>) + - [func \(\*VerifyRegistrationRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyRegistrationRequest.Descriptor>) + - [func \(x \*VerifyRegistrationRequest\) GetDid\(\) string](<#VerifyRegistrationRequest.GetDid>) + - [func \(x \*VerifyRegistrationRequest\) GetVerifyBadge\(\) bool](<#VerifyRegistrationRequest.GetVerifyBadge>) + - [func \(x \*VerifyRegistrationRequest\) GetVerifyKeys\(\) bool](<#VerifyRegistrationRequest.GetVerifyKeys>) + - [func \(\*VerifyRegistrationRequest\) ProtoMessage\(\)](<#VerifyRegistrationRequest.ProtoMessage>) + - [func \(x \*VerifyRegistrationRequest\) ProtoReflect\(\) protoreflect.Message](<#VerifyRegistrationRequest.ProtoReflect>) + - [func \(x \*VerifyRegistrationRequest\) Reset\(\)](<#VerifyRegistrationRequest.Reset>) + - [func \(x \*VerifyRegistrationRequest\) String\(\) string](<#VerifyRegistrationRequest.String>) +- [type VerifyRegistrationResponse](<#VerifyRegistrationResponse>) + - [func \(\*VerifyRegistrationResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyRegistrationResponse.Descriptor>) + - [func \(x \*VerifyRegistrationResponse\) GetBadgeValid\(\) bool](<#VerifyRegistrationResponse.GetBadgeValid>) + - [func \(x \*VerifyRegistrationResponse\) GetErrorMessage\(\) string](<#VerifyRegistrationResponse.GetErrorMessage>) + - [func \(x \*VerifyRegistrationResponse\) GetIsRegistered\(\) bool](<#VerifyRegistrationResponse.GetIsRegistered>) + - [func \(x \*VerifyRegistrationResponse\) GetKeysValid\(\) bool](<#VerifyRegistrationResponse.GetKeysValid>) + - [func \(x \*VerifyRegistrationResponse\) GetValidation\(\) \*ValidationResult](<#VerifyRegistrationResponse.GetValidation>) + - [func \(\*VerifyRegistrationResponse\) ProtoMessage\(\)](<#VerifyRegistrationResponse.ProtoMessage>) + - [func \(x \*VerifyRegistrationResponse\) ProtoReflect\(\) protoreflect.Message](<#VerifyRegistrationResponse.ProtoReflect>) + - [func \(x \*VerifyRegistrationResponse\) Reset\(\)](<#VerifyRegistrationResponse.Reset>) + - [func \(x \*VerifyRegistrationResponse\) String\(\) string](<#VerifyRegistrationResponse.String>) +- [type VerifyRequest](<#VerifyRequest>) + - [func \(\*VerifyRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyRequest.Descriptor>) + - [func \(x \*VerifyRequest\) GetExpectedSigner\(\) string](<#VerifyRequest.GetExpectedSigner>) + - [func \(x \*VerifyRequest\) GetPayload\(\) \[\]byte](<#VerifyRequest.GetPayload>) + - [func \(x \*VerifyRequest\) GetSignature\(\) \[\]byte](<#VerifyRequest.GetSignature>) + - [func \(x \*VerifyRequest\) GetSignatureString\(\) string](<#VerifyRequest.GetSignatureString>) + - [func \(\*VerifyRequest\) ProtoMessage\(\)](<#VerifyRequest.ProtoMessage>) + - [func \(x \*VerifyRequest\) ProtoReflect\(\) protoreflect.Message](<#VerifyRequest.ProtoReflect>) + - [func \(x \*VerifyRequest\) Reset\(\)](<#VerifyRequest.Reset>) + - [func \(x \*VerifyRequest\) String\(\) string](<#VerifyRequest.String>) +- [type VerifyResponse](<#VerifyResponse>) + - [func \(\*VerifyResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyResponse.Descriptor>) + - [func \(x \*VerifyResponse\) GetErrorMessage\(\) string](<#VerifyResponse.GetErrorMessage>) + - [func \(x \*VerifyResponse\) GetKeyId\(\) string](<#VerifyResponse.GetKeyId>) + - [func \(x \*VerifyResponse\) GetSignerDid\(\) string](<#VerifyResponse.GetSignerDid>) + - [func \(x \*VerifyResponse\) GetValid\(\) bool](<#VerifyResponse.GetValid>) + - [func \(x \*VerifyResponse\) GetValidation\(\) \*ValidationResult](<#VerifyResponse.GetValidation>) + - [func \(\*VerifyResponse\) ProtoMessage\(\)](<#VerifyResponse.ProtoMessage>) + - [func \(x \*VerifyResponse\) ProtoReflect\(\) protoreflect.Message](<#VerifyResponse.ProtoReflect>) + - [func \(x \*VerifyResponse\) Reset\(\)](<#VerifyResponse.Reset>) + - [func \(x \*VerifyResponse\) String\(\) string](<#VerifyResponse.String>) +- [type VerifyServerIdentityRequest](<#VerifyServerIdentityRequest>) + - [func \(\*VerifyServerIdentityRequest\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyServerIdentityRequest.Descriptor>) + - [func \(x \*VerifyServerIdentityRequest\) GetConfig\(\) \*MCPVerifyConfig](<#VerifyServerIdentityRequest.GetConfig>) + - [func \(x \*VerifyServerIdentityRequest\) GetEndpointPath\(\) string](<#VerifyServerIdentityRequest.GetEndpointPath>) + - [func \(x \*VerifyServerIdentityRequest\) GetServerBadge\(\) string](<#VerifyServerIdentityRequest.GetServerBadge>) + - [func \(x \*VerifyServerIdentityRequest\) GetServerDid\(\) string](<#VerifyServerIdentityRequest.GetServerDid>) + - [func \(x \*VerifyServerIdentityRequest\) GetTransportOrigin\(\) string](<#VerifyServerIdentityRequest.GetTransportOrigin>) + - [func \(\*VerifyServerIdentityRequest\) ProtoMessage\(\)](<#VerifyServerIdentityRequest.ProtoMessage>) + - [func \(x \*VerifyServerIdentityRequest\) ProtoReflect\(\) protoreflect.Message](<#VerifyServerIdentityRequest.ProtoReflect>) + - [func \(x \*VerifyServerIdentityRequest\) Reset\(\)](<#VerifyServerIdentityRequest.Reset>) + - [func \(x \*VerifyServerIdentityRequest\) String\(\) string](<#VerifyServerIdentityRequest.String>) +- [type VerifyServerIdentityResponse](<#VerifyServerIdentityResponse>) + - [func \(\*VerifyServerIdentityResponse\) Descriptor\(\) \(\[\]byte, \[\]int\)](<#VerifyServerIdentityResponse.Descriptor>) + - [func \(x \*VerifyServerIdentityResponse\) GetBadgeJti\(\) string](<#VerifyServerIdentityResponse.GetBadgeJti>) + - [func \(x \*VerifyServerIdentityResponse\) GetErrorCode\(\) MCPServerErrorCode](<#VerifyServerIdentityResponse.GetErrorCode>) + - [func \(x \*VerifyServerIdentityResponse\) GetErrorDetail\(\) string](<#VerifyServerIdentityResponse.GetErrorDetail>) + - [func \(x \*VerifyServerIdentityResponse\) GetServerDid\(\) string](<#VerifyServerIdentityResponse.GetServerDid>) + - [func \(x \*VerifyServerIdentityResponse\) GetState\(\) MCPServerState](<#VerifyServerIdentityResponse.GetState>) + - [func \(x \*VerifyServerIdentityResponse\) GetTrustLevel\(\) int32](<#VerifyServerIdentityResponse.GetTrustLevel>) + - [func \(\*VerifyServerIdentityResponse\) ProtoMessage\(\)](<#VerifyServerIdentityResponse.ProtoMessage>) + - [func \(x \*VerifyServerIdentityResponse\) ProtoReflect\(\) protoreflect.Message](<#VerifyServerIdentityResponse.ProtoReflect>) + - [func \(x \*VerifyServerIdentityResponse\) Reset\(\)](<#VerifyServerIdentityResponse.Reset>) + - [func \(x \*VerifyServerIdentityResponse\) String\(\) string](<#VerifyServerIdentityResponse.String>) + + +## Constants + + + +```go +const ( + BadgeService_SignBadge_FullMethodName = "/capiscio.v1.BadgeService/SignBadge" + BadgeService_VerifyBadge_FullMethodName = "/capiscio.v1.BadgeService/VerifyBadge" + BadgeService_VerifyBadgeWithOptions_FullMethodName = "/capiscio.v1.BadgeService/VerifyBadgeWithOptions" + BadgeService_ParseBadge_FullMethodName = "/capiscio.v1.BadgeService/ParseBadge" + BadgeService_RequestBadge_FullMethodName = "/capiscio.v1.BadgeService/RequestBadge" + BadgeService_RequestPoPBadge_FullMethodName = "/capiscio.v1.BadgeService/RequestPoPBadge" + BadgeService_CreateDVOrder_FullMethodName = "/capiscio.v1.BadgeService/CreateDVOrder" + BadgeService_GetDVOrder_FullMethodName = "/capiscio.v1.BadgeService/GetDVOrder" + BadgeService_FinalizeDVOrder_FullMethodName = "/capiscio.v1.BadgeService/FinalizeDVOrder" + BadgeService_StartKeeper_FullMethodName = "/capiscio.v1.BadgeService/StartKeeper" +) +``` + + + +```go +const ( + DIDService_Parse_FullMethodName = "/capiscio.v1.DIDService/Parse" + DIDService_NewAgentDID_FullMethodName = "/capiscio.v1.DIDService/NewAgentDID" + DIDService_NewCapiscIOAgentDID_FullMethodName = "/capiscio.v1.DIDService/NewCapiscIOAgentDID" + DIDService_DocumentURL_FullMethodName = "/capiscio.v1.DIDService/DocumentURL" + DIDService_IsAgentDID_FullMethodName = "/capiscio.v1.DIDService/IsAgentDID" +) +``` + + + +```go +const ( + MCPService_EvaluateToolAccess_FullMethodName = "/capiscio.v1.MCPService/EvaluateToolAccess" + MCPService_EvaluatePolicyDecision_FullMethodName = "/capiscio.v1.MCPService/EvaluatePolicyDecision" + MCPService_VerifyServerIdentity_FullMethodName = "/capiscio.v1.MCPService/VerifyServerIdentity" + MCPService_ParseServerIdentity_FullMethodName = "/capiscio.v1.MCPService/ParseServerIdentity" + MCPService_Health_FullMethodName = "/capiscio.v1.MCPService/Health" +) +``` + + + +```go +const ( + RegistryService_GetAgent_FullMethodName = "/capiscio.v1.RegistryService/GetAgent" + RegistryService_SearchAgents_FullMethodName = "/capiscio.v1.RegistryService/SearchAgents" + RegistryService_RegisterAgent_FullMethodName = "/capiscio.v1.RegistryService/RegisterAgent" + RegistryService_UpdateAgent_FullMethodName = "/capiscio.v1.RegistryService/UpdateAgent" + RegistryService_DeregisterAgent_FullMethodName = "/capiscio.v1.RegistryService/DeregisterAgent" + RegistryService_VerifyRegistration_FullMethodName = "/capiscio.v1.RegistryService/VerifyRegistration" + RegistryService_ListAgents_FullMethodName = "/capiscio.v1.RegistryService/ListAgents" + RegistryService_GetStats_FullMethodName = "/capiscio.v1.RegistryService/GetStats" + RegistryService_Ping_FullMethodName = "/capiscio.v1.RegistryService/Ping" +) +``` + + + +```go +const ( + RevocationService_IsRevoked_FullMethodName = "/capiscio.v1.RevocationService/IsRevoked" + RevocationService_Revoke_FullMethodName = "/capiscio.v1.RevocationService/Revoke" + RevocationService_Unrevoke_FullMethodName = "/capiscio.v1.RevocationService/Unrevoke" + RevocationService_ListRevocations_FullMethodName = "/capiscio.v1.RevocationService/ListRevocations" + RevocationService_FetchRevocationList_FullMethodName = "/capiscio.v1.RevocationService/FetchRevocationList" + RevocationService_ClearCache_FullMethodName = "/capiscio.v1.RevocationService/ClearCache" + RevocationService_GetCacheStats_FullMethodName = "/capiscio.v1.RevocationService/GetCacheStats" +) +``` + + + +```go +const ( + ScoringService_ScoreAgentCard_FullMethodName = "/capiscio.v1.ScoringService/ScoreAgentCard" + ScoringService_ValidateRule_FullMethodName = "/capiscio.v1.ScoringService/ValidateRule" + ScoringService_ListRuleSets_FullMethodName = "/capiscio.v1.ScoringService/ListRuleSets" + ScoringService_GetRuleSet_FullMethodName = "/capiscio.v1.ScoringService/GetRuleSet" + ScoringService_AggregateScores_FullMethodName = "/capiscio.v1.ScoringService/AggregateScores" +) +``` + + + +```go +const ( + SimpleGuardService_Sign_FullMethodName = "/capiscio.v1.SimpleGuardService/Sign" + SimpleGuardService_Verify_FullMethodName = "/capiscio.v1.SimpleGuardService/Verify" + SimpleGuardService_SignAttached_FullMethodName = "/capiscio.v1.SimpleGuardService/SignAttached" + SimpleGuardService_VerifyAttached_FullMethodName = "/capiscio.v1.SimpleGuardService/VerifyAttached" + SimpleGuardService_GenerateKeyPair_FullMethodName = "/capiscio.v1.SimpleGuardService/GenerateKeyPair" + SimpleGuardService_LoadKey_FullMethodName = "/capiscio.v1.SimpleGuardService/LoadKey" + SimpleGuardService_ExportKey_FullMethodName = "/capiscio.v1.SimpleGuardService/ExportKey" + SimpleGuardService_GetKeyInfo_FullMethodName = "/capiscio.v1.SimpleGuardService/GetKeyInfo" + SimpleGuardService_Init_FullMethodName = "/capiscio.v1.SimpleGuardService/Init" +) +``` + + + +```go +const ( + TrustStoreService_AddKey_FullMethodName = "/capiscio.v1.TrustStoreService/AddKey" + TrustStoreService_RemoveKey_FullMethodName = "/capiscio.v1.TrustStoreService/RemoveKey" + TrustStoreService_GetKey_FullMethodName = "/capiscio.v1.TrustStoreService/GetKey" + TrustStoreService_ListKeys_FullMethodName = "/capiscio.v1.TrustStoreService/ListKeys" + TrustStoreService_IsTrusted_FullMethodName = "/capiscio.v1.TrustStoreService/IsTrusted" + TrustStoreService_ImportFromDirectory_FullMethodName = "/capiscio.v1.TrustStoreService/ImportFromDirectory" + TrustStoreService_ExportToDirectory_FullMethodName = "/capiscio.v1.TrustStoreService/ExportToDirectory" + TrustStoreService_Clear_FullMethodName = "/capiscio.v1.TrustStoreService/Clear" +) +``` + +## Variables + +Enum value maps for TrustLevel. + +```go +var ( + TrustLevel_name = map[int32]string{ + 0: "TRUST_LEVEL_UNSPECIFIED", + 1: "TRUST_LEVEL_SELF_SIGNED", + 2: "TRUST_LEVEL_DV", + 3: "TRUST_LEVEL_OV", + 4: "TRUST_LEVEL_EV", + 5: "TRUST_LEVEL_CV", + } + TrustLevel_value = map[string]int32{ + "TRUST_LEVEL_UNSPECIFIED": 0, + "TRUST_LEVEL_SELF_SIGNED": 1, + "TRUST_LEVEL_DV": 2, + "TRUST_LEVEL_OV": 3, + "TRUST_LEVEL_EV": 4, + "TRUST_LEVEL_CV": 5, + } +) +``` + +Enum value maps for VerifyMode. + +```go +var ( + VerifyMode_name = map[int32]string{ + 0: "VERIFY_MODE_UNSPECIFIED", + 1: "VERIFY_MODE_OFFLINE", + 2: "VERIFY_MODE_ONLINE", + 3: "VERIFY_MODE_HYBRID", + } + VerifyMode_value = map[string]int32{ + "VERIFY_MODE_UNSPECIFIED": 0, + "VERIFY_MODE_OFFLINE": 1, + "VERIFY_MODE_ONLINE": 2, + "VERIFY_MODE_HYBRID": 3, + } +) +``` + +Enum value maps for KeeperMode. + +```go +var ( + KeeperMode_name = map[int32]string{ + 0: "KEEPER_MODE_UNSPECIFIED", + 1: "KEEPER_MODE_CA", + 2: "KEEPER_MODE_SELF_SIGN", + } + KeeperMode_value = map[string]int32{ + "KEEPER_MODE_UNSPECIFIED": 0, + "KEEPER_MODE_CA": 1, + "KEEPER_MODE_SELF_SIGN": 2, + } +) +``` + +Enum value maps for KeeperEventType. + +```go +var ( + KeeperEventType_name = map[int32]string{ + 0: "KEEPER_EVENT_UNSPECIFIED", + 1: "KEEPER_EVENT_STARTED", + 2: "KEEPER_EVENT_RENEWED", + 3: "KEEPER_EVENT_ERROR", + 4: "KEEPER_EVENT_STOPPED", + } + KeeperEventType_value = map[string]int32{ + "KEEPER_EVENT_UNSPECIFIED": 0, + "KEEPER_EVENT_STARTED": 1, + "KEEPER_EVENT_RENEWED": 2, + "KEEPER_EVENT_ERROR": 3, + "KEEPER_EVENT_STOPPED": 4, + } +) +``` + +Enum value maps for ValidationSeverity. + +```go +var ( + ValidationSeverity_name = map[int32]string{ + 0: "VALIDATION_SEVERITY_UNSPECIFIED", + 1: "VALIDATION_SEVERITY_INFO", + 2: "VALIDATION_SEVERITY_WARNING", + 3: "VALIDATION_SEVERITY_ERROR", + } + ValidationSeverity_value = map[string]int32{ + "VALIDATION_SEVERITY_UNSPECIFIED": 0, + "VALIDATION_SEVERITY_INFO": 1, + "VALIDATION_SEVERITY_WARNING": 2, + "VALIDATION_SEVERITY_ERROR": 3, + } +) +``` + +Enum value maps for Rating. + +```go +var ( + Rating_name = map[int32]string{ + 0: "RATING_UNSPECIFIED", + 1: "RATING_CRITICAL", + 2: "RATING_POOR", + 3: "RATING_FAIR", + 4: "RATING_GOOD", + 5: "RATING_EXCELLENT", + } + Rating_value = map[string]int32{ + "RATING_UNSPECIFIED": 0, + "RATING_CRITICAL": 1, + "RATING_POOR": 2, + "RATING_FAIR": 3, + "RATING_GOOD": 4, + "RATING_EXCELLENT": 5, + } +) +``` + +Enum value maps for MCPDecision. + +```go +var ( + MCPDecision_name = map[int32]string{ + 0: "MCP_DECISION_UNSPECIFIED", + 1: "MCP_DECISION_ALLOW", + 2: "MCP_DECISION_DENY", + } + MCPDecision_value = map[string]int32{ + "MCP_DECISION_UNSPECIFIED": 0, + "MCP_DECISION_ALLOW": 1, + "MCP_DECISION_DENY": 2, + } +) +``` + +Enum value maps for MCPAuthLevel. + +```go +var ( + MCPAuthLevel_name = map[int32]string{ + 0: "MCP_AUTH_LEVEL_UNSPECIFIED", + 1: "MCP_AUTH_LEVEL_ANONYMOUS", + 2: "MCP_AUTH_LEVEL_API_KEY", + 3: "MCP_AUTH_LEVEL_BADGE", + } + MCPAuthLevel_value = map[string]int32{ + "MCP_AUTH_LEVEL_UNSPECIFIED": 0, + "MCP_AUTH_LEVEL_ANONYMOUS": 1, + "MCP_AUTH_LEVEL_API_KEY": 2, + "MCP_AUTH_LEVEL_BADGE": 3, + } +) +``` + +Enum value maps for MCPDenyReason. + +```go +var ( + MCPDenyReason_name = map[int32]string{ + 0: "MCP_DENY_REASON_UNSPECIFIED", + 1: "MCP_DENY_REASON_BADGE_MISSING", + 2: "MCP_DENY_REASON_BADGE_INVALID", + 3: "MCP_DENY_REASON_BADGE_EXPIRED", + 4: "MCP_DENY_REASON_BADGE_REVOKED", + 5: "MCP_DENY_REASON_TRUST_INSUFFICIENT", + 6: "MCP_DENY_REASON_TOOL_NOT_ALLOWED", + 7: "MCP_DENY_REASON_ISSUER_UNTRUSTED", + 8: "MCP_DENY_REASON_POLICY_DENIED", + } + MCPDenyReason_value = map[string]int32{ + "MCP_DENY_REASON_UNSPECIFIED": 0, + "MCP_DENY_REASON_BADGE_MISSING": 1, + "MCP_DENY_REASON_BADGE_INVALID": 2, + "MCP_DENY_REASON_BADGE_EXPIRED": 3, + "MCP_DENY_REASON_BADGE_REVOKED": 4, + "MCP_DENY_REASON_TRUST_INSUFFICIENT": 5, + "MCP_DENY_REASON_TOOL_NOT_ALLOWED": 6, + "MCP_DENY_REASON_ISSUER_UNTRUSTED": 7, + "MCP_DENY_REASON_POLICY_DENIED": 8, + } +) +``` + +Enum value maps for MCPServerState. + +```go +var ( + MCPServerState_name = map[int32]string{ + 0: "MCP_SERVER_STATE_UNSPECIFIED", + 1: "MCP_SERVER_STATE_VERIFIED_PRINCIPAL", + 2: "MCP_SERVER_STATE_DECLARED_PRINCIPAL", + 3: "MCP_SERVER_STATE_UNVERIFIED_ORIGIN", + } + MCPServerState_value = map[string]int32{ + "MCP_SERVER_STATE_UNSPECIFIED": 0, + "MCP_SERVER_STATE_VERIFIED_PRINCIPAL": 1, + "MCP_SERVER_STATE_DECLARED_PRINCIPAL": 2, + "MCP_SERVER_STATE_UNVERIFIED_ORIGIN": 3, + } +) +``` + +Enum value maps for MCPServerErrorCode. + +```go +var ( + MCPServerErrorCode_name = map[int32]string{ + 0: "MCP_SERVER_ERROR_NONE", + 1: "MCP_SERVER_ERROR_DID_INVALID", + 2: "MCP_SERVER_ERROR_BADGE_INVALID", + 3: "MCP_SERVER_ERROR_BADGE_EXPIRED", + 4: "MCP_SERVER_ERROR_BADGE_REVOKED", + 5: "MCP_SERVER_ERROR_TRUST_INSUFFICIENT", + 6: "MCP_SERVER_ERROR_ORIGIN_MISMATCH", + 7: "MCP_SERVER_ERROR_PATH_MISMATCH", + 8: "MCP_SERVER_ERROR_ISSUER_UNTRUSTED", + } + MCPServerErrorCode_value = map[string]int32{ + "MCP_SERVER_ERROR_NONE": 0, + "MCP_SERVER_ERROR_DID_INVALID": 1, + "MCP_SERVER_ERROR_BADGE_INVALID": 2, + "MCP_SERVER_ERROR_BADGE_EXPIRED": 3, + "MCP_SERVER_ERROR_BADGE_REVOKED": 4, + "MCP_SERVER_ERROR_TRUST_INSUFFICIENT": 5, + "MCP_SERVER_ERROR_ORIGIN_MISMATCH": 6, + "MCP_SERVER_ERROR_PATH_MISMATCH": 7, + "MCP_SERVER_ERROR_ISSUER_UNTRUSTED": 8, + } +) +``` + +Enum value maps for AgentStatus. + +```go +var ( + AgentStatus_name = map[int32]string{ + 0: "AGENT_STATUS_UNSPECIFIED", + 1: "AGENT_STATUS_ACTIVE", + 2: "AGENT_STATUS_INACTIVE", + 3: "AGENT_STATUS_SUSPENDED", + 4: "AGENT_STATUS_PENDING", + } + AgentStatus_value = map[string]int32{ + "AGENT_STATUS_UNSPECIFIED": 0, + "AGENT_STATUS_ACTIVE": 1, + "AGENT_STATUS_INACTIVE": 2, + "AGENT_STATUS_SUSPENDED": 3, + "AGENT_STATUS_PENDING": 4, + } +) +``` + +Enum value maps for SearchOperator. + +```go +var ( + SearchOperator_name = map[int32]string{ + 0: "SEARCH_OPERATOR_UNSPECIFIED", + 1: "SEARCH_OPERATOR_AND", + 2: "SEARCH_OPERATOR_OR", + } + SearchOperator_value = map[string]int32{ + "SEARCH_OPERATOR_UNSPECIFIED": 0, + "SEARCH_OPERATOR_AND": 1, + "SEARCH_OPERATOR_OR": 2, + } +) +``` + +Enum value maps for RevocationReason. + +```go +var ( + RevocationReason_name = map[int32]string{ + 0: "REVOCATION_REASON_UNSPECIFIED", + 1: "REVOCATION_REASON_KEY_COMPROMISE", + 2: "REVOCATION_REASON_AFFILIATION_CHANGED", + 3: "REVOCATION_REASON_SUPERSEDED", + 4: "REVOCATION_REASON_CESSATION_OF_OPERATION", + 5: "REVOCATION_REASON_PRIVILEGE_WITHDRAWN", + } + RevocationReason_value = map[string]int32{ + "REVOCATION_REASON_UNSPECIFIED": 0, + "REVOCATION_REASON_KEY_COMPROMISE": 1, + "REVOCATION_REASON_AFFILIATION_CHANGED": 2, + "REVOCATION_REASON_SUPERSEDED": 3, + "REVOCATION_REASON_CESSATION_OF_OPERATION": 4, + "REVOCATION_REASON_PRIVILEGE_WITHDRAWN": 5, + } +) +``` + +Enum value maps for ScoreCategory. + +```go +var ( + ScoreCategory_name = map[int32]string{ + 0: "SCORE_CATEGORY_UNSPECIFIED", + 1: "SCORE_CATEGORY_IDENTITY", + 2: "SCORE_CATEGORY_CAPABILITIES", + 3: "SCORE_CATEGORY_SECURITY", + 4: "SCORE_CATEGORY_COMPLIANCE", + 5: "SCORE_CATEGORY_TRANSPARENCY", + } + ScoreCategory_value = map[string]int32{ + "SCORE_CATEGORY_UNSPECIFIED": 0, + "SCORE_CATEGORY_IDENTITY": 1, + "SCORE_CATEGORY_CAPABILITIES": 2, + "SCORE_CATEGORY_SECURITY": 3, + "SCORE_CATEGORY_COMPLIANCE": 4, + "SCORE_CATEGORY_TRANSPARENCY": 5, + } +) +``` + +Enum value maps for RuleSeverity. + +```go +var ( + RuleSeverity_name = map[int32]string{ + 0: "RULE_SEVERITY_UNSPECIFIED", + 1: "RULE_SEVERITY_INFO", + 2: "RULE_SEVERITY_WARNING", + 3: "RULE_SEVERITY_ERROR", + 4: "RULE_SEVERITY_CRITICAL", + } + RuleSeverity_value = map[string]int32{ + "RULE_SEVERITY_UNSPECIFIED": 0, + "RULE_SEVERITY_INFO": 1, + "RULE_SEVERITY_WARNING": 2, + "RULE_SEVERITY_ERROR": 3, + "RULE_SEVERITY_CRITICAL": 4, + } +) +``` + +Enum value maps for SignatureFormat. + +```go +var ( + SignatureFormat_name = map[int32]string{ + 0: "SIGNATURE_FORMAT_UNSPECIFIED", + 1: "SIGNATURE_FORMAT_JWS_COMPACT", + 2: "SIGNATURE_FORMAT_JWS_JSON", + 3: "SIGNATURE_FORMAT_RAW", + } + SignatureFormat_value = map[string]int32{ + "SIGNATURE_FORMAT_UNSPECIFIED": 0, + "SIGNATURE_FORMAT_JWS_COMPACT": 1, + "SIGNATURE_FORMAT_JWS_JSON": 2, + "SIGNATURE_FORMAT_RAW": 3, + } +) +``` + +Enum value maps for KeyAlgorithm. + +```go +var ( + KeyAlgorithm_name = map[int32]string{ + 0: "KEY_ALGORITHM_UNSPECIFIED", + 1: "KEY_ALGORITHM_ED25519", + 2: "KEY_ALGORITHM_ECDSA_P256", + 3: "KEY_ALGORITHM_ECDSA_P384", + 4: "KEY_ALGORITHM_RSA_2048", + 5: "KEY_ALGORITHM_RSA_4096", + } + KeyAlgorithm_value = map[string]int32{ + "KEY_ALGORITHM_UNSPECIFIED": 0, + "KEY_ALGORITHM_ED25519": 1, + "KEY_ALGORITHM_ECDSA_P256": 2, + "KEY_ALGORITHM_ECDSA_P384": 3, + "KEY_ALGORITHM_RSA_2048": 4, + "KEY_ALGORITHM_RSA_4096": 5, + } +) +``` + +Enum value maps for KeyFormat. + +```go +var ( + KeyFormat_name = map[int32]string{ + 0: "KEY_FORMAT_UNSPECIFIED", + 1: "KEY_FORMAT_JWK", + 2: "KEY_FORMAT_PEM", + 3: "KEY_FORMAT_DER", + } + KeyFormat_value = map[string]int32{ + "KEY_FORMAT_UNSPECIFIED": 0, + "KEY_FORMAT_JWK": 1, + "KEY_FORMAT_PEM": 2, + "KEY_FORMAT_DER": 3, + } +) +``` + +BadgeService\_ServiceDesc is the grpc.ServiceDesc for BadgeService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified \(even as a copy\) + +```go +var BadgeService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "capiscio.v1.BadgeService", + HandlerType: (*BadgeServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "SignBadge", + Handler: _BadgeService_SignBadge_Handler, + }, + { + MethodName: "VerifyBadge", + Handler: _BadgeService_VerifyBadge_Handler, + }, + { + MethodName: "VerifyBadgeWithOptions", + Handler: _BadgeService_VerifyBadgeWithOptions_Handler, + }, + { + MethodName: "ParseBadge", + Handler: _BadgeService_ParseBadge_Handler, + }, + { + MethodName: "RequestBadge", + Handler: _BadgeService_RequestBadge_Handler, + }, + { + MethodName: "RequestPoPBadge", + Handler: _BadgeService_RequestPoPBadge_Handler, + }, + { + MethodName: "CreateDVOrder", + Handler: _BadgeService_CreateDVOrder_Handler, + }, + { + MethodName: "GetDVOrder", + Handler: _BadgeService_GetDVOrder_Handler, + }, + { + MethodName: "FinalizeDVOrder", + Handler: _BadgeService_FinalizeDVOrder_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "StartKeeper", + Handler: _BadgeService_StartKeeper_Handler, + ServerStreams: true, + }, + }, + Metadata: "capiscio/v1/badge.proto", +} +``` + +DIDService\_ServiceDesc is the grpc.ServiceDesc for DIDService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified \(even as a copy\) + +```go +var DIDService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "capiscio.v1.DIDService", + HandlerType: (*DIDServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Parse", + Handler: _DIDService_Parse_Handler, + }, + { + MethodName: "NewAgentDID", + Handler: _DIDService_NewAgentDID_Handler, + }, + { + MethodName: "NewCapiscIOAgentDID", + Handler: _DIDService_NewCapiscIOAgentDID_Handler, + }, + { + MethodName: "DocumentURL", + Handler: _DIDService_DocumentURL_Handler, + }, + { + MethodName: "IsAgentDID", + Handler: _DIDService_IsAgentDID_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "capiscio/v1/did.proto", +} +``` + + + +```go +var File_capiscio_v1_badge_proto protoreflect.FileDescriptor +``` + + + +```go +var File_capiscio_v1_common_proto protoreflect.FileDescriptor +``` + + + +```go +var File_capiscio_v1_did_proto protoreflect.FileDescriptor +``` + + + +```go +var File_capiscio_v1_mcp_proto protoreflect.FileDescriptor +``` + + + +```go +var File_capiscio_v1_registry_proto protoreflect.FileDescriptor +``` + + + +```go +var File_capiscio_v1_revocation_proto protoreflect.FileDescriptor +``` + + + +```go +var File_capiscio_v1_scoring_proto protoreflect.FileDescriptor +``` + + + +```go +var File_capiscio_v1_simpleguard_proto protoreflect.FileDescriptor +``` + + + +```go +var File_capiscio_v1_trust_proto protoreflect.FileDescriptor +``` + +MCPService\_ServiceDesc is the grpc.ServiceDesc for MCPService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified \(even as a copy\) + +```go +var MCPService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "capiscio.v1.MCPService", + HandlerType: (*MCPServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "EvaluateToolAccess", + Handler: _MCPService_EvaluateToolAccess_Handler, + }, + { + MethodName: "EvaluatePolicyDecision", + Handler: _MCPService_EvaluatePolicyDecision_Handler, + }, + { + MethodName: "VerifyServerIdentity", + Handler: _MCPService_VerifyServerIdentity_Handler, + }, + { + MethodName: "ParseServerIdentity", + Handler: _MCPService_ParseServerIdentity_Handler, + }, + { + MethodName: "Health", + Handler: _MCPService_Health_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "capiscio/v1/mcp.proto", +} +``` + +RegistryService\_ServiceDesc is the grpc.ServiceDesc for RegistryService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified \(even as a copy\) + +```go +var RegistryService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "capiscio.v1.RegistryService", + HandlerType: (*RegistryServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAgent", + Handler: _RegistryService_GetAgent_Handler, + }, + { + MethodName: "SearchAgents", + Handler: _RegistryService_SearchAgents_Handler, + }, + { + MethodName: "RegisterAgent", + Handler: _RegistryService_RegisterAgent_Handler, + }, + { + MethodName: "UpdateAgent", + Handler: _RegistryService_UpdateAgent_Handler, + }, + { + MethodName: "DeregisterAgent", + Handler: _RegistryService_DeregisterAgent_Handler, + }, + { + MethodName: "VerifyRegistration", + Handler: _RegistryService_VerifyRegistration_Handler, + }, + { + MethodName: "ListAgents", + Handler: _RegistryService_ListAgents_Handler, + }, + { + MethodName: "GetStats", + Handler: _RegistryService_GetStats_Handler, + }, + { + MethodName: "Ping", + Handler: _RegistryService_Ping_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "capiscio/v1/registry.proto", +} +``` + +RevocationService\_ServiceDesc is the grpc.ServiceDesc for RevocationService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified \(even as a copy\) + +```go +var RevocationService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "capiscio.v1.RevocationService", + HandlerType: (*RevocationServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "IsRevoked", + Handler: _RevocationService_IsRevoked_Handler, + }, + { + MethodName: "Revoke", + Handler: _RevocationService_Revoke_Handler, + }, + { + MethodName: "Unrevoke", + Handler: _RevocationService_Unrevoke_Handler, + }, + { + MethodName: "ListRevocations", + Handler: _RevocationService_ListRevocations_Handler, + }, + { + MethodName: "FetchRevocationList", + Handler: _RevocationService_FetchRevocationList_Handler, + }, + { + MethodName: "ClearCache", + Handler: _RevocationService_ClearCache_Handler, + }, + { + MethodName: "GetCacheStats", + Handler: _RevocationService_GetCacheStats_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "capiscio/v1/revocation.proto", +} +``` + +ScoringService\_ServiceDesc is the grpc.ServiceDesc for ScoringService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified \(even as a copy\) + +```go +var ScoringService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "capiscio.v1.ScoringService", + HandlerType: (*ScoringServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ScoreAgentCard", + Handler: _ScoringService_ScoreAgentCard_Handler, + }, + { + MethodName: "ValidateRule", + Handler: _ScoringService_ValidateRule_Handler, + }, + { + MethodName: "ListRuleSets", + Handler: _ScoringService_ListRuleSets_Handler, + }, + { + MethodName: "GetRuleSet", + Handler: _ScoringService_GetRuleSet_Handler, + }, + { + MethodName: "AggregateScores", + Handler: _ScoringService_AggregateScores_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "capiscio/v1/scoring.proto", +} +``` + +SimpleGuardService\_ServiceDesc is the grpc.ServiceDesc for SimpleGuardService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified \(even as a copy\) + +```go +var SimpleGuardService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "capiscio.v1.SimpleGuardService", + HandlerType: (*SimpleGuardServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Sign", + Handler: _SimpleGuardService_Sign_Handler, + }, + { + MethodName: "Verify", + Handler: _SimpleGuardService_Verify_Handler, + }, + { + MethodName: "SignAttached", + Handler: _SimpleGuardService_SignAttached_Handler, + }, + { + MethodName: "VerifyAttached", + Handler: _SimpleGuardService_VerifyAttached_Handler, + }, + { + MethodName: "GenerateKeyPair", + Handler: _SimpleGuardService_GenerateKeyPair_Handler, + }, + { + MethodName: "LoadKey", + Handler: _SimpleGuardService_LoadKey_Handler, + }, + { + MethodName: "ExportKey", + Handler: _SimpleGuardService_ExportKey_Handler, + }, + { + MethodName: "GetKeyInfo", + Handler: _SimpleGuardService_GetKeyInfo_Handler, + }, + { + MethodName: "Init", + Handler: _SimpleGuardService_Init_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "capiscio/v1/simpleguard.proto", +} +``` + +TrustStoreService\_ServiceDesc is the grpc.ServiceDesc for TrustStoreService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified \(even as a copy\) + +```go +var TrustStoreService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "capiscio.v1.TrustStoreService", + HandlerType: (*TrustStoreServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "AddKey", + Handler: _TrustStoreService_AddKey_Handler, + }, + { + MethodName: "RemoveKey", + Handler: _TrustStoreService_RemoveKey_Handler, + }, + { + MethodName: "GetKey", + Handler: _TrustStoreService_GetKey_Handler, + }, + { + MethodName: "ListKeys", + Handler: _TrustStoreService_ListKeys_Handler, + }, + { + MethodName: "IsTrusted", + Handler: _TrustStoreService_IsTrusted_Handler, + }, + { + MethodName: "ImportFromDirectory", + Handler: _TrustStoreService_ImportFromDirectory_Handler, + }, + { + MethodName: "ExportToDirectory", + Handler: _TrustStoreService_ExportToDirectory_Handler, + }, + { + MethodName: "Clear", + Handler: _TrustStoreService_Clear_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "capiscio/v1/trust.proto", +} +``` + + +## func [RegisterBadgeServiceServer]() + +```go +func RegisterBadgeServiceServer(s grpc.ServiceRegistrar, srv BadgeServiceServer) +``` + + + + +## func [RegisterDIDServiceServer]() + +```go +func RegisterDIDServiceServer(s grpc.ServiceRegistrar, srv DIDServiceServer) +``` + + + + +## func [RegisterMCPServiceServer]() + +```go +func RegisterMCPServiceServer(s grpc.ServiceRegistrar, srv MCPServiceServer) +``` + + + + +## func [RegisterRegistryServiceServer]() + +```go +func RegisterRegistryServiceServer(s grpc.ServiceRegistrar, srv RegistryServiceServer) +``` + + + + +## func [RegisterRevocationServiceServer]() + +```go +func RegisterRevocationServiceServer(s grpc.ServiceRegistrar, srv RevocationServiceServer) +``` + + + + +## func [RegisterScoringServiceServer]() + +```go +func RegisterScoringServiceServer(s grpc.ServiceRegistrar, srv ScoringServiceServer) +``` + + + + +## func [RegisterSimpleGuardServiceServer]() + +```go +func RegisterSimpleGuardServiceServer(s grpc.ServiceRegistrar, srv SimpleGuardServiceServer) +``` + + + + +## func [RegisterTrustStoreServiceServer]() + +```go +func RegisterTrustStoreServiceServer(s grpc.ServiceRegistrar, srv TrustStoreServiceServer) +``` + + + + +## type [AddKeyRequest]() + +Request to add a key + +```go +type AddKeyRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + PublicKey []byte `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + Format KeyFormat `protobuf:"varint,3,opt,name=format,proto3,enum=capiscio.v1.KeyFormat" json:"format,omitempty"` + Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // contains filtered or unexported fields +} +``` + + +### func \(\*AddKeyRequest\) [Descriptor]() + +```go +func (*AddKeyRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use AddKeyRequest.ProtoReflect.Descriptor instead. + + +### func \(\*AddKeyRequest\) [GetDid]() + +```go +func (x *AddKeyRequest) GetDid() string +``` + + + + +### func \(\*AddKeyRequest\) [GetFormat]() + +```go +func (x *AddKeyRequest) GetFormat() KeyFormat +``` + + + + +### func \(\*AddKeyRequest\) [GetMetadata]() + +```go +func (x *AddKeyRequest) GetMetadata() map[string]string +``` + + + + +### func \(\*AddKeyRequest\) [GetPublicKey]() + +```go +func (x *AddKeyRequest) GetPublicKey() []byte +``` + + + + +### func \(\*AddKeyRequest\) [ProtoMessage]() + +```go +func (*AddKeyRequest) ProtoMessage() +``` + + + + +### func \(\*AddKeyRequest\) [ProtoReflect]() + +```go +func (x *AddKeyRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*AddKeyRequest\) [Reset]() + +```go +func (x *AddKeyRequest) Reset() +``` + + + + +### func \(\*AddKeyRequest\) [String]() + +```go +func (x *AddKeyRequest) String() string +``` + + + + +## type [AddKeyResponse]() + +Response for add key + +```go +type AddKeyResponse struct { + KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*AddKeyResponse\) [Descriptor]() + +```go +func (*AddKeyResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use AddKeyResponse.ProtoReflect.Descriptor instead. + + +### func \(\*AddKeyResponse\) [GetErrorMessage]() + +```go +func (x *AddKeyResponse) GetErrorMessage() string +``` + + + + +### func \(\*AddKeyResponse\) [GetKeyId]() + +```go +func (x *AddKeyResponse) GetKeyId() string +``` + + + + +### func \(\*AddKeyResponse\) [ProtoMessage]() + +```go +func (*AddKeyResponse) ProtoMessage() +``` + + + + +### func \(\*AddKeyResponse\) [ProtoReflect]() + +```go +func (x *AddKeyResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*AddKeyResponse\) [Reset]() + +```go +func (x *AddKeyResponse) Reset() +``` + + + + +### func \(\*AddKeyResponse\) [String]() + +```go +func (x *AddKeyResponse) String() string +``` + + + + +## type [AgentStatus]() + +Agent status + +```go +type AgentStatus int32 +``` + + + +```go +const ( + AgentStatus_AGENT_STATUS_UNSPECIFIED AgentStatus = 0 + AgentStatus_AGENT_STATUS_ACTIVE AgentStatus = 1 + AgentStatus_AGENT_STATUS_INACTIVE AgentStatus = 2 + AgentStatus_AGENT_STATUS_SUSPENDED AgentStatus = 3 + AgentStatus_AGENT_STATUS_PENDING AgentStatus = 4 +) +``` + + +### func \(AgentStatus\) [Descriptor]() + +```go +func (AgentStatus) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(AgentStatus\) [Enum]() + +```go +func (x AgentStatus) Enum() *AgentStatus +``` + + + + +### func \(AgentStatus\) [EnumDescriptor]() + +```go +func (AgentStatus) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use AgentStatus.Descriptor instead. + + +### func \(AgentStatus\) [Number]() + +```go +func (x AgentStatus) Number() protoreflect.EnumNumber +``` + + + + +### func \(AgentStatus\) [String]() + +```go +func (x AgentStatus) String() string +``` + + + + +### func \(AgentStatus\) [Type]() + +```go +func (AgentStatus) Type() protoreflect.EnumType +``` + + + + +## type [AggregateScoresRequest]() + +Request to aggregate scores + +```go +type AggregateScoresRequest struct { + Results []*ScoringResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` + AggregationMethod string `protobuf:"bytes,2,opt,name=aggregation_method,json=aggregationMethod,proto3" json:"aggregation_method,omitempty"` // "mean", "weighted", "min" + // contains filtered or unexported fields +} +``` + + +### func \(\*AggregateScoresRequest\) [Descriptor]() + +```go +func (*AggregateScoresRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use AggregateScoresRequest.ProtoReflect.Descriptor instead. + + +### func \(\*AggregateScoresRequest\) [GetAggregationMethod]() + +```go +func (x *AggregateScoresRequest) GetAggregationMethod() string +``` + + + + +### func \(\*AggregateScoresRequest\) [GetResults]() + +```go +func (x *AggregateScoresRequest) GetResults() []*ScoringResult +``` + + + + +### func \(\*AggregateScoresRequest\) [ProtoMessage]() + +```go +func (*AggregateScoresRequest) ProtoMessage() +``` + + + + +### func \(\*AggregateScoresRequest\) [ProtoReflect]() + +```go +func (x *AggregateScoresRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*AggregateScoresRequest\) [Reset]() + +```go +func (x *AggregateScoresRequest) Reset() +``` + + + + +### func \(\*AggregateScoresRequest\) [String]() + +```go +func (x *AggregateScoresRequest) String() string +``` + + + + +## type [AggregateScoresResponse]() + +Response with aggregated score + +```go +type AggregateScoresResponse struct { + AggregateScore float64 `protobuf:"fixed64,1,opt,name=aggregate_score,json=aggregateScore,proto3" json:"aggregate_score,omitempty"` + AggregateRating Rating `protobuf:"varint,2,opt,name=aggregate_rating,json=aggregateRating,proto3,enum=capiscio.v1.Rating" json:"aggregate_rating,omitempty"` + CategoryAggregates map[string]float64 `protobuf:"bytes,3,rep,name=category_aggregates,json=categoryAggregates,proto3" json:"category_aggregates,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` + // contains filtered or unexported fields +} +``` + + +### func \(\*AggregateScoresResponse\) [Descriptor]() + +```go +func (*AggregateScoresResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use AggregateScoresResponse.ProtoReflect.Descriptor instead. + + +### func \(\*AggregateScoresResponse\) [GetAggregateRating]() + +```go +func (x *AggregateScoresResponse) GetAggregateRating() Rating +``` + + + + +### func \(\*AggregateScoresResponse\) [GetAggregateScore]() + +```go +func (x *AggregateScoresResponse) GetAggregateScore() float64 +``` + + + + +### func \(\*AggregateScoresResponse\) [GetCategoryAggregates]() + +```go +func (x *AggregateScoresResponse) GetCategoryAggregates() map[string]float64 +``` + + + + +### func \(\*AggregateScoresResponse\) [ProtoMessage]() + +```go +func (*AggregateScoresResponse) ProtoMessage() +``` + + + + +### func \(\*AggregateScoresResponse\) [ProtoReflect]() + +```go +func (x *AggregateScoresResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*AggregateScoresResponse\) [Reset]() + +```go +func (x *AggregateScoresResponse) Reset() +``` + + + + +### func \(\*AggregateScoresResponse\) [String]() + +```go +func (x *AggregateScoresResponse) String() string +``` + + + + +## type [BadgeClaims]() + +Badge claims structure + +```go +type BadgeClaims struct { + Jti string `protobuf:"bytes,1,opt,name=jti,proto3" json:"jti,omitempty"` // JWT ID - unique identifier + Iss string `protobuf:"bytes,2,opt,name=iss,proto3" json:"iss,omitempty"` // Issuer URL + Sub string `protobuf:"bytes,3,opt,name=sub,proto3" json:"sub,omitempty"` // Subject (did:web identifier) + Iat int64 `protobuf:"varint,4,opt,name=iat,proto3" json:"iat,omitempty"` // Issued At (Unix timestamp) + Exp int64 `protobuf:"varint,5,opt,name=exp,proto3" json:"exp,omitempty"` // Expiration (Unix timestamp) + Nbf int64 `protobuf:"varint,6,opt,name=nbf,proto3" json:"nbf,omitempty"` // Not Before (Unix timestamp) + Aud []string `protobuf:"bytes,7,rep,name=aud,proto3" json:"aud,omitempty"` // Audience + TrustLevel TrustLevel `protobuf:"varint,8,opt,name=trust_level,json=trustLevel,proto3,enum=capiscio.v1.TrustLevel" json:"trust_level,omitempty"` + Domain string `protobuf:"bytes,9,opt,name=domain,proto3" json:"domain,omitempty"` + AgentName string `protobuf:"bytes,10,opt,name=agent_name,json=agentName,proto3" json:"agent_name,omitempty"` + Scope string `protobuf:"bytes,11,opt,name=scope,proto3" json:"scope,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*BadgeClaims\) [Descriptor]() + +```go +func (*BadgeClaims) Descriptor() ([]byte, []int) +``` + +Deprecated: Use BadgeClaims.ProtoReflect.Descriptor instead. + + +### func \(\*BadgeClaims\) [GetAgentName]() + +```go +func (x *BadgeClaims) GetAgentName() string +``` + + + + +### func \(\*BadgeClaims\) [GetAud]() + +```go +func (x *BadgeClaims) GetAud() []string +``` + + + + +### func \(\*BadgeClaims\) [GetDomain]() + +```go +func (x *BadgeClaims) GetDomain() string +``` + + + + +### func \(\*BadgeClaims\) [GetExp]() + +```go +func (x *BadgeClaims) GetExp() int64 +``` + + + + +### func \(\*BadgeClaims\) [GetIat]() + +```go +func (x *BadgeClaims) GetIat() int64 +``` + + + + +### func \(\*BadgeClaims\) [GetIss]() + +```go +func (x *BadgeClaims) GetIss() string +``` + + + + +### func \(\*BadgeClaims\) [GetJti]() + +```go +func (x *BadgeClaims) GetJti() string +``` + + + + +### func \(\*BadgeClaims\) [GetNbf]() + +```go +func (x *BadgeClaims) GetNbf() int64 +``` + + + + +### func \(\*BadgeClaims\) [GetScope]() + +```go +func (x *BadgeClaims) GetScope() string +``` + + + + +### func \(\*BadgeClaims\) [GetSub]() + +```go +func (x *BadgeClaims) GetSub() string +``` + + + + +### func \(\*BadgeClaims\) [GetTrustLevel]() + +```go +func (x *BadgeClaims) GetTrustLevel() TrustLevel +``` + + + + +### func \(\*BadgeClaims\) [ProtoMessage]() + +```go +func (*BadgeClaims) ProtoMessage() +``` + + + + +### func \(\*BadgeClaims\) [ProtoReflect]() + +```go +func (x *BadgeClaims) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*BadgeClaims\) [Reset]() + +```go +func (x *BadgeClaims) Reset() +``` + + + + +### func \(\*BadgeClaims\) [String]() + +```go +func (x *BadgeClaims) String() string +``` + + + + +## type [BadgeServiceClient]() + +BadgeServiceClient is the client API for BadgeService service. + +For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. + +BadgeService handles Trust Badge operations + +```go +type BadgeServiceClient interface { + // Sign a new badge with the provided claims + SignBadge(ctx context.Context, in *SignBadgeRequest, opts ...grpc.CallOption) (*SignBadgeResponse, error) + // Verify a badge token (basic verification) + VerifyBadge(ctx context.Context, in *VerifyBadgeRequest, opts ...grpc.CallOption) (*VerifyBadgeResponse, error) + // Verify a badge with full options (online checks, etc.) + VerifyBadgeWithOptions(ctx context.Context, in *VerifyBadgeWithOptionsRequest, opts ...grpc.CallOption) (*VerifyBadgeResponse, error) + // Parse badge claims without verification + ParseBadge(ctx context.Context, in *ParseBadgeRequest, opts ...grpc.CallOption) (*ParseBadgeResponse, error) + // Request a badge from a Certificate Authority (RFC-002 §12.1) + // This is for production use where badges are issued by CapiscIO registry + RequestBadge(ctx context.Context, in *RequestBadgeRequest, opts ...grpc.CallOption) (*RequestBadgeResponse, error) + // Request a badge using Proof of Possession (RFC-003) + // This provides IAL-1 assurance with cryptographic key binding + RequestPoPBadge(ctx context.Context, in *RequestPoPBadgeRequest, opts ...grpc.CallOption) (*RequestPoPBadgeResponse, error) + // Create a Domain Validated (DV) badge order (RFC-002 v1.2) + CreateDVOrder(ctx context.Context, in *CreateDVOrderRequest, opts ...grpc.CallOption) (*CreateDVOrderResponse, error) + // Get DV order status + GetDVOrder(ctx context.Context, in *GetDVOrderRequest, opts ...grpc.CallOption) (*GetDVOrderResponse, error) + // Finalize DV order and receive grant + FinalizeDVOrder(ctx context.Context, in *FinalizeDVOrderRequest, opts ...grpc.CallOption) (*FinalizeDVOrderResponse, error) + // Start a badge keeper that automatically renews badges (RFC-002 §7.3) + // Returns a stream of keeper events (started, renewed, error, stopped) + StartKeeper(ctx context.Context, in *StartKeeperRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[KeeperEvent], error) +} +``` + + +### func [NewBadgeServiceClient]() + +```go +func NewBadgeServiceClient(cc grpc.ClientConnInterface) BadgeServiceClient +``` + + + + +## type [BadgeServiceServer]() + +BadgeServiceServer is the server API for BadgeService service. All implementations must embed UnimplementedBadgeServiceServer for forward compatibility. + +BadgeService handles Trust Badge operations + +```go +type BadgeServiceServer interface { + // Sign a new badge with the provided claims + SignBadge(context.Context, *SignBadgeRequest) (*SignBadgeResponse, error) + // Verify a badge token (basic verification) + VerifyBadge(context.Context, *VerifyBadgeRequest) (*VerifyBadgeResponse, error) + // Verify a badge with full options (online checks, etc.) + VerifyBadgeWithOptions(context.Context, *VerifyBadgeWithOptionsRequest) (*VerifyBadgeResponse, error) + // Parse badge claims without verification + ParseBadge(context.Context, *ParseBadgeRequest) (*ParseBadgeResponse, error) + // Request a badge from a Certificate Authority (RFC-002 §12.1) + // This is for production use where badges are issued by CapiscIO registry + RequestBadge(context.Context, *RequestBadgeRequest) (*RequestBadgeResponse, error) + // Request a badge using Proof of Possession (RFC-003) + // This provides IAL-1 assurance with cryptographic key binding + RequestPoPBadge(context.Context, *RequestPoPBadgeRequest) (*RequestPoPBadgeResponse, error) + // Create a Domain Validated (DV) badge order (RFC-002 v1.2) + CreateDVOrder(context.Context, *CreateDVOrderRequest) (*CreateDVOrderResponse, error) + // Get DV order status + GetDVOrder(context.Context, *GetDVOrderRequest) (*GetDVOrderResponse, error) + // Finalize DV order and receive grant + FinalizeDVOrder(context.Context, *FinalizeDVOrderRequest) (*FinalizeDVOrderResponse, error) + // Start a badge keeper that automatically renews badges (RFC-002 §7.3) + // Returns a stream of keeper events (started, renewed, error, stopped) + StartKeeper(*StartKeeperRequest, grpc.ServerStreamingServer[KeeperEvent]) error + // contains filtered or unexported methods +} +``` + + +## type [BadgeService\\\_StartKeeperClient]() + +This type alias is provided for backwards compatibility with existing code that references the prior non\-generic stream type by name. + +```go +type BadgeService_StartKeeperClient = grpc.ServerStreamingClient[KeeperEvent] +``` + + +## type [BadgeService\\\_StartKeeperServer]() + +This type alias is provided for backwards compatibility with existing code that references the prior non\-generic stream type by name. + +```go +type BadgeService_StartKeeperServer = grpc.ServerStreamingServer[KeeperEvent] +``` + + +## type [CategoryScore]() + +Category score breakdown + +```go +type CategoryScore struct { + Category ScoreCategory `protobuf:"varint,1,opt,name=category,proto3,enum=capiscio.v1.ScoreCategory" json:"category,omitempty"` + Score float64 `protobuf:"fixed64,2,opt,name=score,proto3" json:"score,omitempty"` // 0.0 to 1.0 + RulesPassed int32 `protobuf:"varint,3,opt,name=rules_passed,json=rulesPassed,proto3" json:"rules_passed,omitempty"` + RulesFailed int32 `protobuf:"varint,4,opt,name=rules_failed,json=rulesFailed,proto3" json:"rules_failed,omitempty"` + Results []*RuleResult `protobuf:"bytes,5,rep,name=results,proto3" json:"results,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*CategoryScore\) [Descriptor]() + +```go +func (*CategoryScore) Descriptor() ([]byte, []int) +``` + +Deprecated: Use CategoryScore.ProtoReflect.Descriptor instead. + + +### func \(\*CategoryScore\) [GetCategory]() + +```go +func (x *CategoryScore) GetCategory() ScoreCategory +``` + + + + +### func \(\*CategoryScore\) [GetResults]() + +```go +func (x *CategoryScore) GetResults() []*RuleResult +``` + + + + +### func \(\*CategoryScore\) [GetRulesFailed]() + +```go +func (x *CategoryScore) GetRulesFailed() int32 +``` + + + + +### func \(\*CategoryScore\) [GetRulesPassed]() + +```go +func (x *CategoryScore) GetRulesPassed() int32 +``` + + + + +### func \(\*CategoryScore\) [GetScore]() + +```go +func (x *CategoryScore) GetScore() float64 +``` + + + + +### func \(\*CategoryScore\) [ProtoMessage]() + +```go +func (*CategoryScore) ProtoMessage() +``` + + + + +### func \(\*CategoryScore\) [ProtoReflect]() + +```go +func (x *CategoryScore) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*CategoryScore\) [Reset]() + +```go +func (x *CategoryScore) Reset() +``` + + + + +### func \(\*CategoryScore\) [String]() + +```go +func (x *CategoryScore) String() string +``` + + + + +## type [ClearCacheRequest]() + +Request to clear cache + +```go +type ClearCacheRequest struct { + SourceFilter string `protobuf:"bytes,1,opt,name=source_filter,json=sourceFilter,proto3" json:"source_filter,omitempty"` // Optional: clear only from specific source + // contains filtered or unexported fields +} +``` + + +### func \(\*ClearCacheRequest\) [Descriptor]() + +```go +func (*ClearCacheRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ClearCacheRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ClearCacheRequest\) [GetSourceFilter]() + +```go +func (x *ClearCacheRequest) GetSourceFilter() string +``` + + + + +### func \(\*ClearCacheRequest\) [ProtoMessage]() + +```go +func (*ClearCacheRequest) ProtoMessage() +``` + + + + +### func \(\*ClearCacheRequest\) [ProtoReflect]() + +```go +func (x *ClearCacheRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ClearCacheRequest\) [Reset]() + +```go +func (x *ClearCacheRequest) Reset() +``` + + + + +### func \(\*ClearCacheRequest\) [String]() + +```go +func (x *ClearCacheRequest) String() string +``` + + + + +## type [ClearCacheResponse]() + +Response for clear cache + +```go +type ClearCacheResponse struct { + EntriesCleared int32 `protobuf:"varint,1,opt,name=entries_cleared,json=entriesCleared,proto3" json:"entries_cleared,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ClearCacheResponse\) [Descriptor]() + +```go +func (*ClearCacheResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ClearCacheResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ClearCacheResponse\) [GetEntriesCleared]() + +```go +func (x *ClearCacheResponse) GetEntriesCleared() int32 +``` + + + + +### func \(\*ClearCacheResponse\) [ProtoMessage]() + +```go +func (*ClearCacheResponse) ProtoMessage() +``` + + + + +### func \(\*ClearCacheResponse\) [ProtoReflect]() + +```go +func (x *ClearCacheResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ClearCacheResponse\) [Reset]() + +```go +func (x *ClearCacheResponse) Reset() +``` + + + + +### func \(\*ClearCacheResponse\) [String]() + +```go +func (x *ClearCacheResponse) String() string +``` + + + + +## type [ClearKeysRequest]() + +Request to clear all keys + +```go +type ClearKeysRequest struct { + Confirm bool `protobuf:"varint,1,opt,name=confirm,proto3" json:"confirm,omitempty"` // Must be true to clear + // contains filtered or unexported fields +} +``` + + +### func \(\*ClearKeysRequest\) [Descriptor]() + +```go +func (*ClearKeysRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ClearKeysRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ClearKeysRequest\) [GetConfirm]() + +```go +func (x *ClearKeysRequest) GetConfirm() bool +``` + + + + +### func \(\*ClearKeysRequest\) [ProtoMessage]() + +```go +func (*ClearKeysRequest) ProtoMessage() +``` + + + + +### func \(\*ClearKeysRequest\) [ProtoReflect]() + +```go +func (x *ClearKeysRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ClearKeysRequest\) [Reset]() + +```go +func (x *ClearKeysRequest) Reset() +``` + + + + +### func \(\*ClearKeysRequest\) [String]() + +```go +func (x *ClearKeysRequest) String() string +``` + + + + +## type [ClearKeysResponse]() + +Response for clear + +```go +type ClearKeysResponse struct { + KeysCleared int32 `protobuf:"varint,1,opt,name=keys_cleared,json=keysCleared,proto3" json:"keys_cleared,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ClearKeysResponse\) [Descriptor]() + +```go +func (*ClearKeysResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ClearKeysResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ClearKeysResponse\) [GetKeysCleared]() + +```go +func (x *ClearKeysResponse) GetKeysCleared() int32 +``` + + + + +### func \(\*ClearKeysResponse\) [ProtoMessage]() + +```go +func (*ClearKeysResponse) ProtoMessage() +``` + + + + +### func \(\*ClearKeysResponse\) [ProtoReflect]() + +```go +func (x *ClearKeysResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ClearKeysResponse\) [Reset]() + +```go +func (x *ClearKeysResponse) Reset() +``` + + + + +### func \(\*ClearKeysResponse\) [String]() + +```go +func (x *ClearKeysResponse) String() string +``` + + + + +## type [CreateDVOrderRequest]() + +Request to create a DV badge order + +```go +type CreateDVOrderRequest struct { + + // Domain to validate (e.g., "example.com") + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` + // Challenge type: "http-01" or "dns-01" + ChallengeType string `protobuf:"bytes,2,opt,name=challenge_type,json=challengeType,proto3" json:"challenge_type,omitempty"` + // Public key in JWK format (JSON string) + Jwk string `protobuf:"bytes,3,opt,name=jwk,proto3" json:"jwk,omitempty"` + // CA URL (default: https://registry.capisc.io) + CaUrl string `protobuf:"bytes,4,opt,name=ca_url,json=caUrl,proto3" json:"ca_url,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*CreateDVOrderRequest\) [Descriptor]() + +```go +func (*CreateDVOrderRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use CreateDVOrderRequest.ProtoReflect.Descriptor instead. + + +### func \(\*CreateDVOrderRequest\) [GetCaUrl]() + +```go +func (x *CreateDVOrderRequest) GetCaUrl() string +``` + + + + +### func \(\*CreateDVOrderRequest\) [GetChallengeType]() + +```go +func (x *CreateDVOrderRequest) GetChallengeType() string +``` + + + + +### func \(\*CreateDVOrderRequest\) [GetDomain]() + +```go +func (x *CreateDVOrderRequest) GetDomain() string +``` + + + + +### func \(\*CreateDVOrderRequest\) [GetJwk]() + +```go +func (x *CreateDVOrderRequest) GetJwk() string +``` + + + + +### func \(\*CreateDVOrderRequest\) [ProtoMessage]() + +```go +func (*CreateDVOrderRequest) ProtoMessage() +``` + + + + +### func \(\*CreateDVOrderRequest\) [ProtoReflect]() + +```go +func (x *CreateDVOrderRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*CreateDVOrderRequest\) [Reset]() + +```go +func (x *CreateDVOrderRequest) Reset() +``` + + + + +### func \(\*CreateDVOrderRequest\) [String]() + +```go +func (x *CreateDVOrderRequest) String() string +``` + + + + +## type [CreateDVOrderResponse]() + +Response from DV order creation + +```go +type CreateDVOrderResponse struct { + + // Whether the request succeeded + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + // Order ID (UUID) + OrderId string `protobuf:"bytes,2,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + // Domain + Domain string `protobuf:"bytes,3,opt,name=domain,proto3" json:"domain,omitempty"` + // Challenge type + ChallengeType string `protobuf:"bytes,4,opt,name=challenge_type,json=challengeType,proto3" json:"challenge_type,omitempty"` + // Challenge token + ChallengeToken string `protobuf:"bytes,5,opt,name=challenge_token,json=challengeToken,proto3" json:"challenge_token,omitempty"` + // Order status ("pending", "valid", "invalid") + Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` + // Validation URL (for HTTP-01) + ValidationUrl string `protobuf:"bytes,7,opt,name=validation_url,json=validationUrl,proto3" json:"validation_url,omitempty"` + // DNS record value (for DNS-01) + DnsRecord string `protobuf:"bytes,8,opt,name=dns_record,json=dnsRecord,proto3" json:"dns_record,omitempty"` + // When the order expires (Unix timestamp) + ExpiresAt int64 `protobuf:"varint,9,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + // Error message if success=false + Error string `protobuf:"bytes,10,opt,name=error,proto3" json:"error,omitempty"` + // Error code + ErrorCode string `protobuf:"bytes,11,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*CreateDVOrderResponse\) [Descriptor]() + +```go +func (*CreateDVOrderResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use CreateDVOrderResponse.ProtoReflect.Descriptor instead. + + +### func \(\*CreateDVOrderResponse\) [GetChallengeToken]() + +```go +func (x *CreateDVOrderResponse) GetChallengeToken() string +``` + + + + +### func \(\*CreateDVOrderResponse\) [GetChallengeType]() + +```go +func (x *CreateDVOrderResponse) GetChallengeType() string +``` + + + + +### func \(\*CreateDVOrderResponse\) [GetDnsRecord]() + +```go +func (x *CreateDVOrderResponse) GetDnsRecord() string +``` + + + + +### func \(\*CreateDVOrderResponse\) [GetDomain]() + +```go +func (x *CreateDVOrderResponse) GetDomain() string +``` + + + + +### func \(\*CreateDVOrderResponse\) [GetError]() + +```go +func (x *CreateDVOrderResponse) GetError() string +``` + + + + +### func \(\*CreateDVOrderResponse\) [GetErrorCode]() + +```go +func (x *CreateDVOrderResponse) GetErrorCode() string +``` + + + + +### func \(\*CreateDVOrderResponse\) [GetExpiresAt]() + +```go +func (x *CreateDVOrderResponse) GetExpiresAt() int64 +``` + + + + +### func \(\*CreateDVOrderResponse\) [GetOrderId]() + +```go +func (x *CreateDVOrderResponse) GetOrderId() string +``` + + + + +### func \(\*CreateDVOrderResponse\) [GetStatus]() + +```go +func (x *CreateDVOrderResponse) GetStatus() string +``` + + + + +### func \(\*CreateDVOrderResponse\) [GetSuccess]() + +```go +func (x *CreateDVOrderResponse) GetSuccess() bool +``` + + + + +### func \(\*CreateDVOrderResponse\) [GetValidationUrl]() + +```go +func (x *CreateDVOrderResponse) GetValidationUrl() string +``` + + + + +### func \(\*CreateDVOrderResponse\) [ProtoMessage]() + +```go +func (*CreateDVOrderResponse) ProtoMessage() +``` + + + + +### func \(\*CreateDVOrderResponse\) [ProtoReflect]() + +```go +func (x *CreateDVOrderResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*CreateDVOrderResponse\) [Reset]() + +```go +func (x *CreateDVOrderResponse) Reset() +``` + + + + +### func \(\*CreateDVOrderResponse\) [String]() + +```go +func (x *CreateDVOrderResponse) String() string +``` + + + + +## type [DID]() + +Parsed DID structure + +```go +type DID struct { + Raw string `protobuf:"bytes,1,opt,name=raw,proto3" json:"raw,omitempty"` // Original DID string + Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` // "web" + Domain string `protobuf:"bytes,3,opt,name=domain,proto3" json:"domain,omitempty"` // Domain part + Path []string `protobuf:"bytes,4,rep,name=path,proto3" json:"path,omitempty"` // Path segments + Fragment string `protobuf:"bytes,5,opt,name=fragment,proto3" json:"fragment,omitempty"` // Fragment (if any) + // contains filtered or unexported fields +} +``` + + +### func \(\*DID\) [Descriptor]() + +```go +func (*DID) Descriptor() ([]byte, []int) +``` + +Deprecated: Use DID.ProtoReflect.Descriptor instead. + + +### func \(\*DID\) [GetDomain]() + +```go +func (x *DID) GetDomain() string +``` + + + + +### func \(\*DID\) [GetFragment]() + +```go +func (x *DID) GetFragment() string +``` + + + + +### func \(\*DID\) [GetMethod]() + +```go +func (x *DID) GetMethod() string +``` + + + + +### func \(\*DID\) [GetPath]() + +```go +func (x *DID) GetPath() []string +``` + + + + +### func \(\*DID\) [GetRaw]() + +```go +func (x *DID) GetRaw() string +``` + + + + +### func \(\*DID\) [ProtoMessage]() + +```go +func (*DID) ProtoMessage() +``` + + + + +### func \(\*DID\) [ProtoReflect]() + +```go +func (x *DID) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*DID\) [Reset]() + +```go +func (x *DID) Reset() +``` + + + + +### func \(\*DID\) [String]() + +```go +func (x *DID) String() string +``` + + + + +## type [DIDServiceClient]() + +DIDServiceClient is the client API for DIDService service. + +For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. + +DIDService handles did:web operations + +```go +type DIDServiceClient interface { + // Parse a did:web identifier + Parse(ctx context.Context, in *ParseDIDRequest, opts ...grpc.CallOption) (*ParseDIDResponse, error) + // Construct a new agent DID + NewAgentDID(ctx context.Context, in *NewAgentDIDRequest, opts ...grpc.CallOption) (*NewAgentDIDResponse, error) + // Construct a Capiscio registry DID + NewCapiscIOAgentDID(ctx context.Context, in *NewCapiscIOAgentDIDRequest, opts ...grpc.CallOption) (*NewAgentDIDResponse, error) + // Get the document URL for a DID + DocumentURL(ctx context.Context, in *DocumentURLRequest, opts ...grpc.CallOption) (*DocumentURLResponse, error) + // Check if a DID is an agent DID + IsAgentDID(ctx context.Context, in *IsAgentDIDRequest, opts ...grpc.CallOption) (*IsAgentDIDResponse, error) +} +``` + + +### func [NewDIDServiceClient]() + +```go +func NewDIDServiceClient(cc grpc.ClientConnInterface) DIDServiceClient +``` + + + + +## type [DIDServiceServer]() + +DIDServiceServer is the server API for DIDService service. All implementations must embed UnimplementedDIDServiceServer for forward compatibility. + +DIDService handles did:web operations + +```go +type DIDServiceServer interface { + // Parse a did:web identifier + Parse(context.Context, *ParseDIDRequest) (*ParseDIDResponse, error) + // Construct a new agent DID + NewAgentDID(context.Context, *NewAgentDIDRequest) (*NewAgentDIDResponse, error) + // Construct a Capiscio registry DID + NewCapiscIOAgentDID(context.Context, *NewCapiscIOAgentDIDRequest) (*NewAgentDIDResponse, error) + // Get the document URL for a DID + DocumentURL(context.Context, *DocumentURLRequest) (*DocumentURLResponse, error) + // Check if a DID is an agent DID + IsAgentDID(context.Context, *IsAgentDIDRequest) (*IsAgentDIDResponse, error) + // contains filtered or unexported methods +} +``` + + +## type [DeregisterAgentRequest]() + +Deregister request + +```go +type DeregisterAgentRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*DeregisterAgentRequest\) [Descriptor]() + +```go +func (*DeregisterAgentRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use DeregisterAgentRequest.ProtoReflect.Descriptor instead. + + +### func \(\*DeregisterAgentRequest\) [GetDid]() + +```go +func (x *DeregisterAgentRequest) GetDid() string +``` + + + + +### func \(\*DeregisterAgentRequest\) [GetReason]() + +```go +func (x *DeregisterAgentRequest) GetReason() string +``` + + + + +### func \(\*DeregisterAgentRequest\) [ProtoMessage]() + +```go +func (*DeregisterAgentRequest) ProtoMessage() +``` + + + + +### func \(\*DeregisterAgentRequest\) [ProtoReflect]() + +```go +func (x *DeregisterAgentRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*DeregisterAgentRequest\) [Reset]() + +```go +func (x *DeregisterAgentRequest) Reset() +``` + + + + +### func \(\*DeregisterAgentRequest\) [String]() + +```go +func (x *DeregisterAgentRequest) String() string +``` + + + + +## type [DeregisterAgentResponse]() + +Deregister response + +```go +type DeregisterAgentResponse struct { + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*DeregisterAgentResponse\) [Descriptor]() + +```go +func (*DeregisterAgentResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use DeregisterAgentResponse.ProtoReflect.Descriptor instead. + + +### func \(\*DeregisterAgentResponse\) [GetErrorMessage]() + +```go +func (x *DeregisterAgentResponse) GetErrorMessage() string +``` + + + + +### func \(\*DeregisterAgentResponse\) [GetSuccess]() + +```go +func (x *DeregisterAgentResponse) GetSuccess() bool +``` + + + + +### func \(\*DeregisterAgentResponse\) [ProtoMessage]() + +```go +func (*DeregisterAgentResponse) ProtoMessage() +``` + + + + +### func \(\*DeregisterAgentResponse\) [ProtoReflect]() + +```go +func (x *DeregisterAgentResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*DeregisterAgentResponse\) [Reset]() + +```go +func (x *DeregisterAgentResponse) Reset() +``` + + + + +### func \(\*DeregisterAgentResponse\) [String]() + +```go +func (x *DeregisterAgentResponse) String() string +``` + + + + +## type [DocumentURLRequest]() + +Request to get document URL + +```go +type DocumentURLRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*DocumentURLRequest\) [Descriptor]() + +```go +func (*DocumentURLRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use DocumentURLRequest.ProtoReflect.Descriptor instead. + + +### func \(\*DocumentURLRequest\) [GetDid]() + +```go +func (x *DocumentURLRequest) GetDid() string +``` + + + + +### func \(\*DocumentURLRequest\) [ProtoMessage]() + +```go +func (*DocumentURLRequest) ProtoMessage() +``` + + + + +### func \(\*DocumentURLRequest\) [ProtoReflect]() + +```go +func (x *DocumentURLRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*DocumentURLRequest\) [Reset]() + +```go +func (x *DocumentURLRequest) Reset() +``` + + + + +### func \(\*DocumentURLRequest\) [String]() + +```go +func (x *DocumentURLRequest) String() string +``` + + + + +## type [DocumentURLResponse]() + +Response with document URL + +```go +type DocumentURLResponse struct { + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*DocumentURLResponse\) [Descriptor]() + +```go +func (*DocumentURLResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use DocumentURLResponse.ProtoReflect.Descriptor instead. + + +### func \(\*DocumentURLResponse\) [GetErrorMessage]() + +```go +func (x *DocumentURLResponse) GetErrorMessage() string +``` + + + + +### func \(\*DocumentURLResponse\) [GetUrl]() + +```go +func (x *DocumentURLResponse) GetUrl() string +``` + + + + +### func \(\*DocumentURLResponse\) [ProtoMessage]() + +```go +func (*DocumentURLResponse) ProtoMessage() +``` + + + + +### func \(\*DocumentURLResponse\) [ProtoReflect]() + +```go +func (x *DocumentURLResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*DocumentURLResponse\) [Reset]() + +```go +func (x *DocumentURLResponse) Reset() +``` + + + + +### func \(\*DocumentURLResponse\) [String]() + +```go +func (x *DocumentURLResponse) String() string +``` + + + + +## type [Duration]() + +Duration in seconds + +```go +type Duration struct { + Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*Duration\) [Descriptor]() + +```go +func (*Duration) Descriptor() ([]byte, []int) +``` + +Deprecated: Use Duration.ProtoReflect.Descriptor instead. + + +### func \(\*Duration\) [GetSeconds]() + +```go +func (x *Duration) GetSeconds() int64 +``` + + + + +### func \(\*Duration\) [ProtoMessage]() + +```go +func (*Duration) ProtoMessage() +``` + + + + +### func \(\*Duration\) [ProtoReflect]() + +```go +func (x *Duration) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*Duration\) [Reset]() + +```go +func (x *Duration) Reset() +``` + + + + +### func \(\*Duration\) [String]() + +```go +func (x *Duration) String() string +``` + + + + +## type [ErrorDetail]() + +Error details for rich error responses + +```go +type ErrorDetail struct { + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ErrorDetail\) [Descriptor]() + +```go +func (*ErrorDetail) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ErrorDetail.ProtoReflect.Descriptor instead. + + +### func \(\*ErrorDetail\) [GetCode]() + +```go +func (x *ErrorDetail) GetCode() string +``` + + + + +### func \(\*ErrorDetail\) [GetMessage]() + +```go +func (x *ErrorDetail) GetMessage() string +``` + + + + +### func \(\*ErrorDetail\) [GetMetadata]() + +```go +func (x *ErrorDetail) GetMetadata() map[string]string +``` + + + + +### func \(\*ErrorDetail\) [ProtoMessage]() + +```go +func (*ErrorDetail) ProtoMessage() +``` + + + + +### func \(\*ErrorDetail\) [ProtoReflect]() + +```go +func (x *ErrorDetail) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ErrorDetail\) [Reset]() + +```go +func (x *ErrorDetail) Reset() +``` + + + + +### func \(\*ErrorDetail\) [String]() + +```go +func (x *ErrorDetail) String() string +``` + + + + +## type [EvaluateConfig]() + +Configuration for tool access evaluation + +```go +type EvaluateConfig struct { + + // List of trusted badge issuers + TrustedIssuers []string `protobuf:"bytes,1,rep,name=trusted_issuers,json=trustedIssuers,proto3" json:"trusted_issuers,omitempty"` + // Minimum required trust level (0-4, default 0) + MinTrustLevel int32 `protobuf:"varint,2,opt,name=min_trust_level,json=minTrustLevel,proto3" json:"min_trust_level,omitempty"` + // Accept self-signed did:key badges (Trust Level 0) + AcceptLevelZero bool `protobuf:"varint,3,opt,name=accept_level_zero,json=acceptLevelZero,proto3" json:"accept_level_zero,omitempty"` + // Allowed tool patterns (glob patterns, e.g., "read_*", "fs.*") + AllowedTools []string `protobuf:"bytes,4,rep,name=allowed_tools,json=allowedTools,proto3" json:"allowed_tools,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*EvaluateConfig\) [Descriptor]() + +```go +func (*EvaluateConfig) Descriptor() ([]byte, []int) +``` + +Deprecated: Use EvaluateConfig.ProtoReflect.Descriptor instead. + + +### func \(\*EvaluateConfig\) [GetAcceptLevelZero]() + +```go +func (x *EvaluateConfig) GetAcceptLevelZero() bool +``` + + + + +### func \(\*EvaluateConfig\) [GetAllowedTools]() + +```go +func (x *EvaluateConfig) GetAllowedTools() []string +``` + + + + +### func \(\*EvaluateConfig\) [GetMinTrustLevel]() + +```go +func (x *EvaluateConfig) GetMinTrustLevel() int32 +``` + + + + +### func \(\*EvaluateConfig\) [GetTrustedIssuers]() + +```go +func (x *EvaluateConfig) GetTrustedIssuers() []string +``` + + + + +### func \(\*EvaluateConfig\) [ProtoMessage]() + +```go +func (*EvaluateConfig) ProtoMessage() +``` + + + + +### func \(\*EvaluateConfig\) [ProtoReflect]() + +```go +func (x *EvaluateConfig) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*EvaluateConfig\) [Reset]() + +```go +func (x *EvaluateConfig) Reset() +``` + + + + +### func \(\*EvaluateConfig\) [String]() + +```go +func (x *EvaluateConfig) String() string +``` + + + + +## type [EvaluateToolAccessRequest]() + +Request to evaluate tool access + +```go +type EvaluateToolAccessRequest struct { + + // Tool name being invoked + ToolName string `protobuf:"bytes,1,opt,name=tool_name,json=toolName,proto3" json:"tool_name,omitempty"` + // SHA-256 hash of canonicalized params: "sha256:" + // CRITICAL: Raw params never sent to core - canonicalization happens in wrapper + ParamsHash string `protobuf:"bytes,2,opt,name=params_hash,json=paramsHash,proto3" json:"params_hash,omitempty"` + // HTTP origin of the server (e.g., "https://api.example.com") + ServerOrigin string `protobuf:"bytes,3,opt,name=server_origin,json=serverOrigin,proto3" json:"server_origin,omitempty"` + // Caller identity - core derives agent_did, badge_jti, auth_level + // + // Types that are valid to be assigned to CallerCredential: + // + // *EvaluateToolAccessRequest_BadgeJws + // *EvaluateToolAccessRequest_ApiKey + CallerCredential isEvaluateToolAccessRequest_CallerCredential `protobuf_oneof:"caller_credential"` + // Optional policy configuration + PolicyVersion string `protobuf:"bytes,6,opt,name=policy_version,json=policyVersion,proto3" json:"policy_version,omitempty"` + Config *EvaluateConfig `protobuf:"bytes,7,opt,name=config,proto3" json:"config,omitempty"` + // RFC-005: PDP integration context (badge-only mode: all empty/zero) + EnforcementMode string `protobuf:"bytes,8,opt,name=enforcement_mode,json=enforcementMode,proto3" json:"enforcement_mode,omitempty"` // EM-OBSERVE, EM-GUARD, EM-DELEGATE, EM-STRICT + // RFC-008: Authority Envelope context (future, all empty for now) + CapabilityClass string `protobuf:"bytes,10,opt,name=capability_class,json=capabilityClass,proto3" json:"capability_class,omitempty"` // reserved for envelope + EnvelopeId string `protobuf:"bytes,11,opt,name=envelope_id,json=envelopeId,proto3" json:"envelope_id,omitempty"` // reserved for envelope + DelegationDepth int32 `protobuf:"varint,12,opt,name=delegation_depth,json=delegationDepth,proto3" json:"delegation_depth,omitempty"` // reserved for envelope + ConstraintsJson string `protobuf:"bytes,13,opt,name=constraints_json,json=constraintsJson,proto3" json:"constraints_json,omitempty"` // reserved for envelope + ParentConstraintsJson string `protobuf:"bytes,14,opt,name=parent_constraints_json,json=parentConstraintsJson,proto3" json:"parent_constraints_json,omitempty"` // reserved for envelope + // contains filtered or unexported fields +} +``` + + +### func \(\*EvaluateToolAccessRequest\) [Descriptor]() + +```go +func (*EvaluateToolAccessRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use EvaluateToolAccessRequest.ProtoReflect.Descriptor instead. + + +### func \(\*EvaluateToolAccessRequest\) [GetApiKey]() + +```go +func (x *EvaluateToolAccessRequest) GetApiKey() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetBadgeJws]() + +```go +func (x *EvaluateToolAccessRequest) GetBadgeJws() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetCallerCredential]() + +```go +func (x *EvaluateToolAccessRequest) GetCallerCredential() isEvaluateToolAccessRequest_CallerCredential +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetCapabilityClass]() + +```go +func (x *EvaluateToolAccessRequest) GetCapabilityClass() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetConfig]() + +```go +func (x *EvaluateToolAccessRequest) GetConfig() *EvaluateConfig +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetConstraintsJson]() + +```go +func (x *EvaluateToolAccessRequest) GetConstraintsJson() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetDelegationDepth]() + +```go +func (x *EvaluateToolAccessRequest) GetDelegationDepth() int32 +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetEnforcementMode]() + +```go +func (x *EvaluateToolAccessRequest) GetEnforcementMode() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetEnvelopeId]() + +```go +func (x *EvaluateToolAccessRequest) GetEnvelopeId() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetParamsHash]() + +```go +func (x *EvaluateToolAccessRequest) GetParamsHash() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetParentConstraintsJson]() + +```go +func (x *EvaluateToolAccessRequest) GetParentConstraintsJson() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetPolicyVersion]() + +```go +func (x *EvaluateToolAccessRequest) GetPolicyVersion() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetServerOrigin]() + +```go +func (x *EvaluateToolAccessRequest) GetServerOrigin() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [GetToolName]() + +```go +func (x *EvaluateToolAccessRequest) GetToolName() string +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [ProtoMessage]() + +```go +func (*EvaluateToolAccessRequest) ProtoMessage() +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [ProtoReflect]() + +```go +func (x *EvaluateToolAccessRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [Reset]() + +```go +func (x *EvaluateToolAccessRequest) Reset() +``` + + + + +### func \(\*EvaluateToolAccessRequest\) [String]() + +```go +func (x *EvaluateToolAccessRequest) String() string +``` + + + + +## type [EvaluateToolAccessRequest\\\_ApiKey]() + + + +```go +type EvaluateToolAccessRequest_ApiKey struct { + ApiKey string `protobuf:"bytes,5,opt,name=api_key,json=apiKey,proto3,oneof"` // API key +} +``` + + +## type [EvaluateToolAccessRequest\\\_BadgeJws]() + + + +```go +type EvaluateToolAccessRequest_BadgeJws struct { + BadgeJws string `protobuf:"bytes,4,opt,name=badge_jws,json=badgeJws,proto3,oneof"` // Full badge JWT +} +``` + + +## type [EvaluateToolAccessResponse]() + +Response from tool access evaluation + +```go +type EvaluateToolAccessResponse struct { + + // Access decision + Decision MCPDecision `protobuf:"varint,1,opt,name=decision,proto3,enum=capiscio.v1.MCPDecision" json:"decision,omitempty"` + // Reason for denial (only set if decision = DENY) + DenyReason MCPDenyReason `protobuf:"varint,2,opt,name=deny_reason,json=denyReason,proto3,enum=capiscio.v1.MCPDenyReason" json:"deny_reason,omitempty"` + // Human-readable denial detail + DenyDetail string `protobuf:"bytes,3,opt,name=deny_detail,json=denyDetail,proto3" json:"deny_detail,omitempty"` + // Derived identity (core extracts from credential) + AgentDid string `protobuf:"bytes,4,opt,name=agent_did,json=agentDid,proto3" json:"agent_did,omitempty"` // Extracted from badge/API key + BadgeJti string `protobuf:"bytes,5,opt,name=badge_jti,json=badgeJti,proto3" json:"badge_jti,omitempty"` // Badge ID if present + AuthLevel MCPAuthLevel `protobuf:"varint,6,opt,name=auth_level,json=authLevel,proto3,enum=capiscio.v1.MCPAuthLevel" json:"auth_level,omitempty"` // ANONYMOUS, API_KEY, or BADGE + TrustLevel int32 `protobuf:"varint,7,opt,name=trust_level,json=trustLevel,proto3" json:"trust_level,omitempty"` // Verified trust level (0-4) + // Evidence (single source of truth - no separate EmitEvidence RPC) + // RFC-006 §7 compliant JSON + EvidenceJson string `protobuf:"bytes,8,opt,name=evidence_json,json=evidenceJson,proto3" json:"evidence_json,omitempty"` + // Unique evidence record ID + EvidenceId string `protobuf:"bytes,9,opt,name=evidence_id,json=evidenceId,proto3" json:"evidence_id,omitempty"` + // Timestamp of evaluation + Timestamp *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // RFC-005: Policy decision context + PolicyDecisionId string `protobuf:"bytes,11,opt,name=policy_decision_id,json=policyDecisionId,proto3" json:"policy_decision_id,omitempty"` // from PDP response + PolicyDecision string `protobuf:"bytes,12,opt,name=policy_decision,json=policyDecision,proto3" json:"policy_decision,omitempty"` // ALLOW, DENY, or ALLOW_OBSERVE + EnforcementMode string `protobuf:"bytes,13,opt,name=enforcement_mode,json=enforcementMode,proto3" json:"enforcement_mode,omitempty"` // mode used for this evaluation + Obligations []*MCPObligation `protobuf:"bytes,14,rep,name=obligations,proto3" json:"obligations,omitempty"` // obligations from PDP + // contains filtered or unexported fields +} +``` + + +### func \(\*EvaluateToolAccessResponse\) [Descriptor]() + +```go +func (*EvaluateToolAccessResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use EvaluateToolAccessResponse.ProtoReflect.Descriptor instead. + + +### func \(\*EvaluateToolAccessResponse\) [GetAgentDid]() + +```go +func (x *EvaluateToolAccessResponse) GetAgentDid() string +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetAuthLevel]() + +```go +func (x *EvaluateToolAccessResponse) GetAuthLevel() MCPAuthLevel +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetBadgeJti]() + +```go +func (x *EvaluateToolAccessResponse) GetBadgeJti() string +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetDecision]() + +```go +func (x *EvaluateToolAccessResponse) GetDecision() MCPDecision +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetDenyDetail]() + +```go +func (x *EvaluateToolAccessResponse) GetDenyDetail() string +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetDenyReason]() + +```go +func (x *EvaluateToolAccessResponse) GetDenyReason() MCPDenyReason +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetEnforcementMode]() + +```go +func (x *EvaluateToolAccessResponse) GetEnforcementMode() string +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetEvidenceId]() + +```go +func (x *EvaluateToolAccessResponse) GetEvidenceId() string +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetEvidenceJson]() + +```go +func (x *EvaluateToolAccessResponse) GetEvidenceJson() string +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetObligations]() + +```go +func (x *EvaluateToolAccessResponse) GetObligations() []*MCPObligation +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetPolicyDecision]() + +```go +func (x *EvaluateToolAccessResponse) GetPolicyDecision() string +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetPolicyDecisionId]() + +```go +func (x *EvaluateToolAccessResponse) GetPolicyDecisionId() string +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetTimestamp]() + +```go +func (x *EvaluateToolAccessResponse) GetTimestamp() *timestamppb.Timestamp +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [GetTrustLevel]() + +```go +func (x *EvaluateToolAccessResponse) GetTrustLevel() int32 +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [ProtoMessage]() + +```go +func (*EvaluateToolAccessResponse) ProtoMessage() +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [ProtoReflect]() + +```go +func (x *EvaluateToolAccessResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [Reset]() + +```go +func (x *EvaluateToolAccessResponse) Reset() +``` + + + + +### func \(\*EvaluateToolAccessResponse\) [String]() + +```go +func (x *EvaluateToolAccessResponse) String() string +``` + + + + +## type [ExportKeyRequest]() + +Request to export key + +```go +type ExportKeyRequest struct { + KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` + FilePath string `protobuf:"bytes,2,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"` + Format KeyFormat `protobuf:"varint,3,opt,name=format,proto3,enum=capiscio.v1.KeyFormat" json:"format,omitempty"` + IncludePrivate bool `protobuf:"varint,4,opt,name=include_private,json=includePrivate,proto3" json:"include_private,omitempty"` + Passphrase string `protobuf:"bytes,5,opt,name=passphrase,proto3" json:"passphrase,omitempty"` // Optional: encrypt private key + // contains filtered or unexported fields +} +``` + + +### func \(\*ExportKeyRequest\) [Descriptor]() + +```go +func (*ExportKeyRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ExportKeyRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ExportKeyRequest\) [GetFilePath]() + +```go +func (x *ExportKeyRequest) GetFilePath() string +``` + + + + +### func \(\*ExportKeyRequest\) [GetFormat]() + +```go +func (x *ExportKeyRequest) GetFormat() KeyFormat +``` + + + + +### func \(\*ExportKeyRequest\) [GetIncludePrivate]() + +```go +func (x *ExportKeyRequest) GetIncludePrivate() bool +``` + + + + +### func \(\*ExportKeyRequest\) [GetKeyId]() + +```go +func (x *ExportKeyRequest) GetKeyId() string +``` + + + + +### func \(\*ExportKeyRequest\) [GetPassphrase]() + +```go +func (x *ExportKeyRequest) GetPassphrase() string +``` + + + + +### func \(\*ExportKeyRequest\) [ProtoMessage]() + +```go +func (*ExportKeyRequest) ProtoMessage() +``` + + + + +### func \(\*ExportKeyRequest\) [ProtoReflect]() + +```go +func (x *ExportKeyRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ExportKeyRequest\) [Reset]() + +```go +func (x *ExportKeyRequest) Reset() +``` + + + + +### func \(\*ExportKeyRequest\) [String]() + +```go +func (x *ExportKeyRequest) String() string +``` + + + + +## type [ExportKeyResponse]() + +Response for export + +```go +type ExportKeyResponse struct { + FilePath string `protobuf:"bytes,1,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ExportKeyResponse\) [Descriptor]() + +```go +func (*ExportKeyResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ExportKeyResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ExportKeyResponse\) [GetErrorMessage]() + +```go +func (x *ExportKeyResponse) GetErrorMessage() string +``` + + + + +### func \(\*ExportKeyResponse\) [GetFilePath]() + +```go +func (x *ExportKeyResponse) GetFilePath() string +``` + + + + +### func \(\*ExportKeyResponse\) [ProtoMessage]() + +```go +func (*ExportKeyResponse) ProtoMessage() +``` + + + + +### func \(\*ExportKeyResponse\) [ProtoReflect]() + +```go +func (x *ExportKeyResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ExportKeyResponse\) [Reset]() + +```go +func (x *ExportKeyResponse) Reset() +``` + + + + +### func \(\*ExportKeyResponse\) [String]() + +```go +func (x *ExportKeyResponse) String() string +``` + + + + +## type [ExportToDirectoryRequest]() + +Request to export to directory + +```go +type ExportToDirectoryRequest struct { + DirectoryPath string `protobuf:"bytes,1,opt,name=directory_path,json=directoryPath,proto3" json:"directory_path,omitempty"` + Format KeyFormat `protobuf:"varint,2,opt,name=format,proto3,enum=capiscio.v1.KeyFormat" json:"format,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ExportToDirectoryRequest\) [Descriptor]() + +```go +func (*ExportToDirectoryRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ExportToDirectoryRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ExportToDirectoryRequest\) [GetDirectoryPath]() + +```go +func (x *ExportToDirectoryRequest) GetDirectoryPath() string +``` + + + + +### func \(\*ExportToDirectoryRequest\) [GetFormat]() + +```go +func (x *ExportToDirectoryRequest) GetFormat() KeyFormat +``` + + + + +### func \(\*ExportToDirectoryRequest\) [ProtoMessage]() + +```go +func (*ExportToDirectoryRequest) ProtoMessage() +``` + + + + +### func \(\*ExportToDirectoryRequest\) [ProtoReflect]() + +```go +func (x *ExportToDirectoryRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ExportToDirectoryRequest\) [Reset]() + +```go +func (x *ExportToDirectoryRequest) Reset() +``` + + + + +### func \(\*ExportToDirectoryRequest\) [String]() + +```go +func (x *ExportToDirectoryRequest) String() string +``` + + + + +## type [ExportToDirectoryResponse]() + +Response for export + +```go +type ExportToDirectoryResponse struct { + KeysExported int32 `protobuf:"varint,1,opt,name=keys_exported,json=keysExported,proto3" json:"keys_exported,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ExportToDirectoryResponse\) [Descriptor]() + +```go +func (*ExportToDirectoryResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ExportToDirectoryResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ExportToDirectoryResponse\) [GetErrorMessage]() + +```go +func (x *ExportToDirectoryResponse) GetErrorMessage() string +``` + + + + +### func \(\*ExportToDirectoryResponse\) [GetKeysExported]() + +```go +func (x *ExportToDirectoryResponse) GetKeysExported() int32 +``` + + + + +### func \(\*ExportToDirectoryResponse\) [ProtoMessage]() + +```go +func (*ExportToDirectoryResponse) ProtoMessage() +``` + + + + +### func \(\*ExportToDirectoryResponse\) [ProtoReflect]() + +```go +func (x *ExportToDirectoryResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ExportToDirectoryResponse\) [Reset]() + +```go +func (x *ExportToDirectoryResponse) Reset() +``` + + + + +### func \(\*ExportToDirectoryResponse\) [String]() + +```go +func (x *ExportToDirectoryResponse) String() string +``` + + + + +## type [FetchRevocationListRequest]() + +Request to fetch remote revocation list + +```go +type FetchRevocationListRequest struct { + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + Timeout *Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*FetchRevocationListRequest\) [Descriptor]() + +```go +func (*FetchRevocationListRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use FetchRevocationListRequest.ProtoReflect.Descriptor instead. + + +### func \(\*FetchRevocationListRequest\) [GetTimeout]() + +```go +func (x *FetchRevocationListRequest) GetTimeout() *Duration +``` + + + + +### func \(\*FetchRevocationListRequest\) [GetUrl]() + +```go +func (x *FetchRevocationListRequest) GetUrl() string +``` + + + + +### func \(\*FetchRevocationListRequest\) [ProtoMessage]() + +```go +func (*FetchRevocationListRequest) ProtoMessage() +``` + + + + +### func \(\*FetchRevocationListRequest\) [ProtoReflect]() + +```go +func (x *FetchRevocationListRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*FetchRevocationListRequest\) [Reset]() + +```go +func (x *FetchRevocationListRequest) Reset() +``` + + + + +### func \(\*FetchRevocationListRequest\) [String]() + +```go +func (x *FetchRevocationListRequest) String() string +``` + + + + +## type [FetchRevocationListResponse]() + +Response for fetch + +```go +type FetchRevocationListResponse struct { + EntriesAdded int32 `protobuf:"varint,1,opt,name=entries_added,json=entriesAdded,proto3" json:"entries_added,omitempty"` + EntriesUpdated int32 `protobuf:"varint,2,opt,name=entries_updated,json=entriesUpdated,proto3" json:"entries_updated,omitempty"` + FetchedAt *Timestamp `protobuf:"bytes,3,opt,name=fetched_at,json=fetchedAt,proto3" json:"fetched_at,omitempty"` + ErrorMessage string `protobuf:"bytes,4,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*FetchRevocationListResponse\) [Descriptor]() + +```go +func (*FetchRevocationListResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use FetchRevocationListResponse.ProtoReflect.Descriptor instead. + + +### func \(\*FetchRevocationListResponse\) [GetEntriesAdded]() + +```go +func (x *FetchRevocationListResponse) GetEntriesAdded() int32 +``` + + + + +### func \(\*FetchRevocationListResponse\) [GetEntriesUpdated]() + +```go +func (x *FetchRevocationListResponse) GetEntriesUpdated() int32 +``` + + + + +### func \(\*FetchRevocationListResponse\) [GetErrorMessage]() + +```go +func (x *FetchRevocationListResponse) GetErrorMessage() string +``` + + + + +### func \(\*FetchRevocationListResponse\) [GetFetchedAt]() + +```go +func (x *FetchRevocationListResponse) GetFetchedAt() *Timestamp +``` + + + + +### func \(\*FetchRevocationListResponse\) [ProtoMessage]() + +```go +func (*FetchRevocationListResponse) ProtoMessage() +``` + + + + +### func \(\*FetchRevocationListResponse\) [ProtoReflect]() + +```go +func (x *FetchRevocationListResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*FetchRevocationListResponse\) [Reset]() + +```go +func (x *FetchRevocationListResponse) Reset() +``` + + + + +### func \(\*FetchRevocationListResponse\) [String]() + +```go +func (x *FetchRevocationListResponse) String() string +``` + + + + +## type [FinalizeDVOrderRequest]() + +Request to finalize DV order + +```go +type FinalizeDVOrderRequest struct { + + // Order ID (UUID) + OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + // CA URL (default: https://registry.capisc.io) + CaUrl string `protobuf:"bytes,2,opt,name=ca_url,json=caUrl,proto3" json:"ca_url,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*FinalizeDVOrderRequest\) [Descriptor]() + +```go +func (*FinalizeDVOrderRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use FinalizeDVOrderRequest.ProtoReflect.Descriptor instead. + + +### func \(\*FinalizeDVOrderRequest\) [GetCaUrl]() + +```go +func (x *FinalizeDVOrderRequest) GetCaUrl() string +``` + + + + +### func \(\*FinalizeDVOrderRequest\) [GetOrderId]() + +```go +func (x *FinalizeDVOrderRequest) GetOrderId() string +``` + + + + +### func \(\*FinalizeDVOrderRequest\) [ProtoMessage]() + +```go +func (*FinalizeDVOrderRequest) ProtoMessage() +``` + + + + +### func \(\*FinalizeDVOrderRequest\) [ProtoReflect]() + +```go +func (x *FinalizeDVOrderRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*FinalizeDVOrderRequest\) [Reset]() + +```go +func (x *FinalizeDVOrderRequest) Reset() +``` + + + + +### func \(\*FinalizeDVOrderRequest\) [String]() + +```go +func (x *FinalizeDVOrderRequest) String() string +``` + + + + +## type [FinalizeDVOrderResponse]() + +Response from DV order finalization + +```go +type FinalizeDVOrderResponse struct { + + // Whether the request succeeded + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + // DV grant JWT + Grant string `protobuf:"bytes,2,opt,name=grant,proto3" json:"grant,omitempty"` + // When the grant expires (Unix timestamp) + ExpiresAt int64 `protobuf:"varint,3,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + // Error message if success=false + Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"` + // Error code + ErrorCode string `protobuf:"bytes,5,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*FinalizeDVOrderResponse\) [Descriptor]() + +```go +func (*FinalizeDVOrderResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use FinalizeDVOrderResponse.ProtoReflect.Descriptor instead. + + +### func \(\*FinalizeDVOrderResponse\) [GetError]() + +```go +func (x *FinalizeDVOrderResponse) GetError() string +``` + + + + +### func \(\*FinalizeDVOrderResponse\) [GetErrorCode]() + +```go +func (x *FinalizeDVOrderResponse) GetErrorCode() string +``` + + + + +### func \(\*FinalizeDVOrderResponse\) [GetExpiresAt]() + +```go +func (x *FinalizeDVOrderResponse) GetExpiresAt() int64 +``` + + + + +### func \(\*FinalizeDVOrderResponse\) [GetGrant]() + +```go +func (x *FinalizeDVOrderResponse) GetGrant() string +``` + + + + +### func \(\*FinalizeDVOrderResponse\) [GetSuccess]() + +```go +func (x *FinalizeDVOrderResponse) GetSuccess() bool +``` + + + + +### func \(\*FinalizeDVOrderResponse\) [ProtoMessage]() + +```go +func (*FinalizeDVOrderResponse) ProtoMessage() +``` + + + + +### func \(\*FinalizeDVOrderResponse\) [ProtoReflect]() + +```go +func (x *FinalizeDVOrderResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*FinalizeDVOrderResponse\) [Reset]() + +```go +func (x *FinalizeDVOrderResponse) Reset() +``` + + + + +### func \(\*FinalizeDVOrderResponse\) [String]() + +```go +func (x *FinalizeDVOrderResponse) String() string +``` + + + + +## type [GenerateKeyPairRequest]() + +Request to generate key pair + +```go +type GenerateKeyPairRequest struct { + Algorithm KeyAlgorithm `protobuf:"varint,1,opt,name=algorithm,proto3,enum=capiscio.v1.KeyAlgorithm" json:"algorithm,omitempty"` + KeyId string `protobuf:"bytes,2,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` // Optional: specific key ID + Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // contains filtered or unexported fields +} +``` + + +### func \(\*GenerateKeyPairRequest\) [Descriptor]() + +```go +func (*GenerateKeyPairRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GenerateKeyPairRequest.ProtoReflect.Descriptor instead. + + +### func \(\*GenerateKeyPairRequest\) [GetAlgorithm]() + +```go +func (x *GenerateKeyPairRequest) GetAlgorithm() KeyAlgorithm +``` + + + + +### func \(\*GenerateKeyPairRequest\) [GetKeyId]() + +```go +func (x *GenerateKeyPairRequest) GetKeyId() string +``` + + + + +### func \(\*GenerateKeyPairRequest\) [GetMetadata]() + +```go +func (x *GenerateKeyPairRequest) GetMetadata() map[string]string +``` + + + + +### func \(\*GenerateKeyPairRequest\) [ProtoMessage]() + +```go +func (*GenerateKeyPairRequest) ProtoMessage() +``` + + + + +### func \(\*GenerateKeyPairRequest\) [ProtoReflect]() + +```go +func (x *GenerateKeyPairRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GenerateKeyPairRequest\) [Reset]() + +```go +func (x *GenerateKeyPairRequest) Reset() +``` + + + + +### func \(\*GenerateKeyPairRequest\) [String]() + +```go +func (x *GenerateKeyPairRequest) String() string +``` + + + + +## type [GenerateKeyPairResponse]() + +Response with generated keys + +```go +type GenerateKeyPairResponse struct { + KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` + PublicKey []byte `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + PrivateKey []byte `protobuf:"bytes,3,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"` + PublicKeyPem string `protobuf:"bytes,4,opt,name=public_key_pem,json=publicKeyPem,proto3" json:"public_key_pem,omitempty"` + PrivateKeyPem string `protobuf:"bytes,5,opt,name=private_key_pem,json=privateKeyPem,proto3" json:"private_key_pem,omitempty"` + Algorithm KeyAlgorithm `protobuf:"varint,6,opt,name=algorithm,proto3,enum=capiscio.v1.KeyAlgorithm" json:"algorithm,omitempty"` + ErrorMessage string `protobuf:"bytes,7,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + DidKey string `protobuf:"bytes,8,opt,name=did_key,json=didKey,proto3" json:"did_key,omitempty"` // did:key URI derived from public key (RFC-002 §6.1) + // contains filtered or unexported fields +} +``` + + +### func \(\*GenerateKeyPairResponse\) [Descriptor]() + +```go +func (*GenerateKeyPairResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GenerateKeyPairResponse.ProtoReflect.Descriptor instead. + + +### func \(\*GenerateKeyPairResponse\) [GetAlgorithm]() + +```go +func (x *GenerateKeyPairResponse) GetAlgorithm() KeyAlgorithm +``` + + + + +### func \(\*GenerateKeyPairResponse\) [GetDidKey]() + +```go +func (x *GenerateKeyPairResponse) GetDidKey() string +``` + + + + +### func \(\*GenerateKeyPairResponse\) [GetErrorMessage]() + +```go +func (x *GenerateKeyPairResponse) GetErrorMessage() string +``` + + + + +### func \(\*GenerateKeyPairResponse\) [GetKeyId]() + +```go +func (x *GenerateKeyPairResponse) GetKeyId() string +``` + + + + +### func \(\*GenerateKeyPairResponse\) [GetPrivateKey]() + +```go +func (x *GenerateKeyPairResponse) GetPrivateKey() []byte +``` + + + + +### func \(\*GenerateKeyPairResponse\) [GetPrivateKeyPem]() + +```go +func (x *GenerateKeyPairResponse) GetPrivateKeyPem() string +``` + + + + +### func \(\*GenerateKeyPairResponse\) [GetPublicKey]() + +```go +func (x *GenerateKeyPairResponse) GetPublicKey() []byte +``` + + + + +### func \(\*GenerateKeyPairResponse\) [GetPublicKeyPem]() + +```go +func (x *GenerateKeyPairResponse) GetPublicKeyPem() string +``` + + + + +### func \(\*GenerateKeyPairResponse\) [ProtoMessage]() + +```go +func (*GenerateKeyPairResponse) ProtoMessage() +``` + + + + +### func \(\*GenerateKeyPairResponse\) [ProtoReflect]() + +```go +func (x *GenerateKeyPairResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GenerateKeyPairResponse\) [Reset]() + +```go +func (x *GenerateKeyPairResponse) Reset() +``` + + + + +### func \(\*GenerateKeyPairResponse\) [String]() + +```go +func (x *GenerateKeyPairResponse) String() string +``` + + + + +## type [GetAgentRequest]() + +Request to get agent + +```go +type GetAgentRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + IncludeBadge bool `protobuf:"varint,2,opt,name=include_badge,json=includeBadge,proto3" json:"include_badge,omitempty"` // Whether to include badge info + VerifyBadge bool `protobuf:"varint,3,opt,name=verify_badge,json=verifyBadge,proto3" json:"verify_badge,omitempty"` // Whether to verify badge + // contains filtered or unexported fields +} +``` + + +### func \(\*GetAgentRequest\) [Descriptor]() + +```go +func (*GetAgentRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetAgentRequest.ProtoReflect.Descriptor instead. + + +### func \(\*GetAgentRequest\) [GetDid]() + +```go +func (x *GetAgentRequest) GetDid() string +``` + + + + +### func \(\*GetAgentRequest\) [GetIncludeBadge]() + +```go +func (x *GetAgentRequest) GetIncludeBadge() bool +``` + + + + +### func \(\*GetAgentRequest\) [GetVerifyBadge]() + +```go +func (x *GetAgentRequest) GetVerifyBadge() bool +``` + + + + +### func \(\*GetAgentRequest\) [ProtoMessage]() + +```go +func (*GetAgentRequest) ProtoMessage() +``` + + + + +### func \(\*GetAgentRequest\) [ProtoReflect]() + +```go +func (x *GetAgentRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetAgentRequest\) [Reset]() + +```go +func (x *GetAgentRequest) Reset() +``` + + + + +### func \(\*GetAgentRequest\) [String]() + +```go +func (x *GetAgentRequest) String() string +``` + + + + +## type [GetAgentResponse]() + +Response with agent + +```go +type GetAgentResponse struct { + Agent *RegisteredAgent `protobuf:"bytes,1,opt,name=agent,proto3" json:"agent,omitempty"` + BadgeValid bool `protobuf:"varint,2,opt,name=badge_valid,json=badgeValid,proto3" json:"badge_valid,omitempty"` + ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*GetAgentResponse\) [Descriptor]() + +```go +func (*GetAgentResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetAgentResponse.ProtoReflect.Descriptor instead. + + +### func \(\*GetAgentResponse\) [GetAgent]() + +```go +func (x *GetAgentResponse) GetAgent() *RegisteredAgent +``` + + + + +### func \(\*GetAgentResponse\) [GetBadgeValid]() + +```go +func (x *GetAgentResponse) GetBadgeValid() bool +``` + + + + +### func \(\*GetAgentResponse\) [GetErrorMessage]() + +```go +func (x *GetAgentResponse) GetErrorMessage() string +``` + + + + +### func \(\*GetAgentResponse\) [ProtoMessage]() + +```go +func (*GetAgentResponse) ProtoMessage() +``` + + + + +### func \(\*GetAgentResponse\) [ProtoReflect]() + +```go +func (x *GetAgentResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetAgentResponse\) [Reset]() + +```go +func (x *GetAgentResponse) Reset() +``` + + + + +### func \(\*GetAgentResponse\) [String]() + +```go +func (x *GetAgentResponse) String() string +``` + + + + +## type [GetCacheStatsRequest]() + +Request for cache stats + +```go +type GetCacheStatsRequest struct { + // contains filtered or unexported fields +} +``` + + +### func \(\*GetCacheStatsRequest\) [Descriptor]() + +```go +func (*GetCacheStatsRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetCacheStatsRequest.ProtoReflect.Descriptor instead. + + +### func \(\*GetCacheStatsRequest\) [ProtoMessage]() + +```go +func (*GetCacheStatsRequest) ProtoMessage() +``` + + + + +### func \(\*GetCacheStatsRequest\) [ProtoReflect]() + +```go +func (x *GetCacheStatsRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetCacheStatsRequest\) [Reset]() + +```go +func (x *GetCacheStatsRequest) Reset() +``` + + + + +### func \(\*GetCacheStatsRequest\) [String]() + +```go +func (x *GetCacheStatsRequest) String() string +``` + + + + +## type [GetCacheStatsResponse]() + +Cache statistics + +```go +type GetCacheStatsResponse struct { + TotalEntries int32 `protobuf:"varint,1,opt,name=total_entries,json=totalEntries,proto3" json:"total_entries,omitempty"` + LocalEntries int32 `protobuf:"varint,2,opt,name=local_entries,json=localEntries,proto3" json:"local_entries,omitempty"` + RemoteEntries int32 `protobuf:"varint,3,opt,name=remote_entries,json=remoteEntries,proto3" json:"remote_entries,omitempty"` + LastRemoteFetch *Timestamp `protobuf:"bytes,4,opt,name=last_remote_fetch,json=lastRemoteFetch,proto3" json:"last_remote_fetch,omitempty"` + CacheTtl *Duration `protobuf:"bytes,5,opt,name=cache_ttl,json=cacheTtl,proto3" json:"cache_ttl,omitempty"` + EntriesBySource map[string]int32 `protobuf:"bytes,6,rep,name=entries_by_source,json=entriesBySource,proto3" json:"entries_by_source,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + // contains filtered or unexported fields +} +``` + + +### func \(\*GetCacheStatsResponse\) [Descriptor]() + +```go +func (*GetCacheStatsResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetCacheStatsResponse.ProtoReflect.Descriptor instead. + + +### func \(\*GetCacheStatsResponse\) [GetCacheTtl]() + +```go +func (x *GetCacheStatsResponse) GetCacheTtl() *Duration +``` + + + + +### func \(\*GetCacheStatsResponse\) [GetEntriesBySource]() + +```go +func (x *GetCacheStatsResponse) GetEntriesBySource() map[string]int32 +``` + + + + +### func \(\*GetCacheStatsResponse\) [GetLastRemoteFetch]() + +```go +func (x *GetCacheStatsResponse) GetLastRemoteFetch() *Timestamp +``` + + + + +### func \(\*GetCacheStatsResponse\) [GetLocalEntries]() + +```go +func (x *GetCacheStatsResponse) GetLocalEntries() int32 +``` + + + + +### func \(\*GetCacheStatsResponse\) [GetRemoteEntries]() + +```go +func (x *GetCacheStatsResponse) GetRemoteEntries() int32 +``` + + + + +### func \(\*GetCacheStatsResponse\) [GetTotalEntries]() + +```go +func (x *GetCacheStatsResponse) GetTotalEntries() int32 +``` + + + + +### func \(\*GetCacheStatsResponse\) [ProtoMessage]() + +```go +func (*GetCacheStatsResponse) ProtoMessage() +``` + + + + +### func \(\*GetCacheStatsResponse\) [ProtoReflect]() + +```go +func (x *GetCacheStatsResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetCacheStatsResponse\) [Reset]() + +```go +func (x *GetCacheStatsResponse) Reset() +``` + + + + +### func \(\*GetCacheStatsResponse\) [String]() + +```go +func (x *GetCacheStatsResponse) String() string +``` + + + + +## type [GetDVOrderRequest]() + +Request to get DV order status + +```go +type GetDVOrderRequest struct { + + // Order ID (UUID) + OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + // CA URL (default: https://registry.capisc.io) + CaUrl string `protobuf:"bytes,2,opt,name=ca_url,json=caUrl,proto3" json:"ca_url,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*GetDVOrderRequest\) [Descriptor]() + +```go +func (*GetDVOrderRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetDVOrderRequest.ProtoReflect.Descriptor instead. + + +### func \(\*GetDVOrderRequest\) [GetCaUrl]() + +```go +func (x *GetDVOrderRequest) GetCaUrl() string +``` + + + + +### func \(\*GetDVOrderRequest\) [GetOrderId]() + +```go +func (x *GetDVOrderRequest) GetOrderId() string +``` + + + + +### func \(\*GetDVOrderRequest\) [ProtoMessage]() + +```go +func (*GetDVOrderRequest) ProtoMessage() +``` + + + + +### func \(\*GetDVOrderRequest\) [ProtoReflect]() + +```go +func (x *GetDVOrderRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetDVOrderRequest\) [Reset]() + +```go +func (x *GetDVOrderRequest) Reset() +``` + + + + +### func \(\*GetDVOrderRequest\) [String]() + +```go +func (x *GetDVOrderRequest) String() string +``` + + + + +## type [GetDVOrderResponse]() + +Response with DV order status + +```go +type GetDVOrderResponse struct { + + // Whether the request succeeded + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + // Order ID (UUID) + OrderId string `protobuf:"bytes,2,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` + // Domain + Domain string `protobuf:"bytes,3,opt,name=domain,proto3" json:"domain,omitempty"` + // Challenge type + ChallengeType string `protobuf:"bytes,4,opt,name=challenge_type,json=challengeType,proto3" json:"challenge_type,omitempty"` + // Challenge token + ChallengeToken string `protobuf:"bytes,5,opt,name=challenge_token,json=challengeToken,proto3" json:"challenge_token,omitempty"` + // Order status + Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` + // Validation URL (for HTTP-01) + ValidationUrl string `protobuf:"bytes,7,opt,name=validation_url,json=validationUrl,proto3" json:"validation_url,omitempty"` + // DNS record value (for DNS-01) + DnsRecord string `protobuf:"bytes,8,opt,name=dns_record,json=dnsRecord,proto3" json:"dns_record,omitempty"` + // When the order expires (Unix timestamp) + ExpiresAt int64 `protobuf:"varint,9,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + // When the order was finalized (Unix timestamp, optional) + FinalizedAt int64 `protobuf:"varint,10,opt,name=finalized_at,json=finalizedAt,proto3" json:"finalized_at,omitempty"` + // Error message if success=false + Error string `protobuf:"bytes,11,opt,name=error,proto3" json:"error,omitempty"` + // Error code + ErrorCode string `protobuf:"bytes,12,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*GetDVOrderResponse\) [Descriptor]() + +```go +func (*GetDVOrderResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetDVOrderResponse.ProtoReflect.Descriptor instead. + + +### func \(\*GetDVOrderResponse\) [GetChallengeToken]() + +```go +func (x *GetDVOrderResponse) GetChallengeToken() string +``` + + + + +### func \(\*GetDVOrderResponse\) [GetChallengeType]() + +```go +func (x *GetDVOrderResponse) GetChallengeType() string +``` + + + + +### func \(\*GetDVOrderResponse\) [GetDnsRecord]() + +```go +func (x *GetDVOrderResponse) GetDnsRecord() string +``` + + + + +### func \(\*GetDVOrderResponse\) [GetDomain]() + +```go +func (x *GetDVOrderResponse) GetDomain() string +``` + + + + +### func \(\*GetDVOrderResponse\) [GetError]() + +```go +func (x *GetDVOrderResponse) GetError() string +``` + + + + +### func \(\*GetDVOrderResponse\) [GetErrorCode]() + +```go +func (x *GetDVOrderResponse) GetErrorCode() string +``` + + + + +### func \(\*GetDVOrderResponse\) [GetExpiresAt]() + +```go +func (x *GetDVOrderResponse) GetExpiresAt() int64 +``` + + + + +### func \(\*GetDVOrderResponse\) [GetFinalizedAt]() + +```go +func (x *GetDVOrderResponse) GetFinalizedAt() int64 +``` + + + + +### func \(\*GetDVOrderResponse\) [GetOrderId]() + +```go +func (x *GetDVOrderResponse) GetOrderId() string +``` + + + + +### func \(\*GetDVOrderResponse\) [GetStatus]() + +```go +func (x *GetDVOrderResponse) GetStatus() string +``` + + + + +### func \(\*GetDVOrderResponse\) [GetSuccess]() + +```go +func (x *GetDVOrderResponse) GetSuccess() bool +``` + + + + +### func \(\*GetDVOrderResponse\) [GetValidationUrl]() + +```go +func (x *GetDVOrderResponse) GetValidationUrl() string +``` + + + + +### func \(\*GetDVOrderResponse\) [ProtoMessage]() + +```go +func (*GetDVOrderResponse) ProtoMessage() +``` + + + + +### func \(\*GetDVOrderResponse\) [ProtoReflect]() + +```go +func (x *GetDVOrderResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetDVOrderResponse\) [Reset]() + +```go +func (x *GetDVOrderResponse) Reset() +``` + + + + +### func \(\*GetDVOrderResponse\) [String]() + +```go +func (x *GetDVOrderResponse) String() string +``` + + + + +## type [GetKeyInfoRequest]() + +Request for key info + +```go +type GetKeyInfoRequest struct { + KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*GetKeyInfoRequest\) [Descriptor]() + +```go +func (*GetKeyInfoRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetKeyInfoRequest.ProtoReflect.Descriptor instead. + + +### func \(\*GetKeyInfoRequest\) [GetKeyId]() + +```go +func (x *GetKeyInfoRequest) GetKeyId() string +``` + + + + +### func \(\*GetKeyInfoRequest\) [ProtoMessage]() + +```go +func (*GetKeyInfoRequest) ProtoMessage() +``` + + + + +### func \(\*GetKeyInfoRequest\) [ProtoReflect]() + +```go +func (x *GetKeyInfoRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetKeyInfoRequest\) [Reset]() + +```go +func (x *GetKeyInfoRequest) Reset() +``` + + + + +### func \(\*GetKeyInfoRequest\) [String]() + +```go +func (x *GetKeyInfoRequest) String() string +``` + + + + +## type [GetKeyInfoResponse]() + +Response with key info + +```go +type GetKeyInfoResponse struct { + KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` + Algorithm KeyAlgorithm `protobuf:"varint,2,opt,name=algorithm,proto3,enum=capiscio.v1.KeyAlgorithm" json:"algorithm,omitempty"` + HasPrivateKey bool `protobuf:"varint,3,opt,name=has_private_key,json=hasPrivateKey,proto3" json:"has_private_key,omitempty"` + PublicKey []byte `protobuf:"bytes,4,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + PublicKeyPem string `protobuf:"bytes,5,opt,name=public_key_pem,json=publicKeyPem,proto3" json:"public_key_pem,omitempty"` + CreatedAt *Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + Metadata map[string]string `protobuf:"bytes,7,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + ErrorMessage string `protobuf:"bytes,8,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*GetKeyInfoResponse\) [Descriptor]() + +```go +func (*GetKeyInfoResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetKeyInfoResponse.ProtoReflect.Descriptor instead. + + +### func \(\*GetKeyInfoResponse\) [GetAlgorithm]() + +```go +func (x *GetKeyInfoResponse) GetAlgorithm() KeyAlgorithm +``` + + + + +### func \(\*GetKeyInfoResponse\) [GetCreatedAt]() + +```go +func (x *GetKeyInfoResponse) GetCreatedAt() *Timestamp +``` + + + + +### func \(\*GetKeyInfoResponse\) [GetErrorMessage]() + +```go +func (x *GetKeyInfoResponse) GetErrorMessage() string +``` + + + + +### func \(\*GetKeyInfoResponse\) [GetHasPrivateKey]() + +```go +func (x *GetKeyInfoResponse) GetHasPrivateKey() bool +``` + + + + +### func \(\*GetKeyInfoResponse\) [GetKeyId]() + +```go +func (x *GetKeyInfoResponse) GetKeyId() string +``` + + + + +### func \(\*GetKeyInfoResponse\) [GetMetadata]() + +```go +func (x *GetKeyInfoResponse) GetMetadata() map[string]string +``` + + + + +### func \(\*GetKeyInfoResponse\) [GetPublicKey]() + +```go +func (x *GetKeyInfoResponse) GetPublicKey() []byte +``` + + + + +### func \(\*GetKeyInfoResponse\) [GetPublicKeyPem]() + +```go +func (x *GetKeyInfoResponse) GetPublicKeyPem() string +``` + + + + +### func \(\*GetKeyInfoResponse\) [ProtoMessage]() + +```go +func (*GetKeyInfoResponse) ProtoMessage() +``` + + + + +### func \(\*GetKeyInfoResponse\) [ProtoReflect]() + +```go +func (x *GetKeyInfoResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetKeyInfoResponse\) [Reset]() + +```go +func (x *GetKeyInfoResponse) Reset() +``` + + + + +### func \(\*GetKeyInfoResponse\) [String]() + +```go +func (x *GetKeyInfoResponse) String() string +``` + + + + +## type [GetKeyRequest]() + +Request to get a key + +```go +type GetKeyRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + KeyId string `protobuf:"bytes,2,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` // Optional: if not set, returns primary key + // contains filtered or unexported fields +} +``` + + +### func \(\*GetKeyRequest\) [Descriptor]() + +```go +func (*GetKeyRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetKeyRequest.ProtoReflect.Descriptor instead. + + +### func \(\*GetKeyRequest\) [GetDid]() + +```go +func (x *GetKeyRequest) GetDid() string +``` + + + + +### func \(\*GetKeyRequest\) [GetKeyId]() + +```go +func (x *GetKeyRequest) GetKeyId() string +``` + + + + +### func \(\*GetKeyRequest\) [ProtoMessage]() + +```go +func (*GetKeyRequest) ProtoMessage() +``` + + + + +### func \(\*GetKeyRequest\) [ProtoReflect]() + +```go +func (x *GetKeyRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetKeyRequest\) [Reset]() + +```go +func (x *GetKeyRequest) Reset() +``` + + + + +### func \(\*GetKeyRequest\) [String]() + +```go +func (x *GetKeyRequest) String() string +``` + + + + +## type [GetKeyResponse]() + +Response with key + +```go +type GetKeyResponse struct { + Key *TrustedKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*GetKeyResponse\) [Descriptor]() + +```go +func (*GetKeyResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetKeyResponse.ProtoReflect.Descriptor instead. + + +### func \(\*GetKeyResponse\) [GetErrorMessage]() + +```go +func (x *GetKeyResponse) GetErrorMessage() string +``` + + + + +### func \(\*GetKeyResponse\) [GetKey]() + +```go +func (x *GetKeyResponse) GetKey() *TrustedKey +``` + + + + +### func \(\*GetKeyResponse\) [ProtoMessage]() + +```go +func (*GetKeyResponse) ProtoMessage() +``` + + + + +### func \(\*GetKeyResponse\) [ProtoReflect]() + +```go +func (x *GetKeyResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetKeyResponse\) [Reset]() + +```go +func (x *GetKeyResponse) Reset() +``` + + + + +### func \(\*GetKeyResponse\) [String]() + +```go +func (x *GetKeyResponse) String() string +``` + + + + +## type [GetRuleSetRequest]() + +Request to get rule set + +```go +type GetRuleSetRequest struct { + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // Optional: specific version + // contains filtered or unexported fields +} +``` + + +### func \(\*GetRuleSetRequest\) [Descriptor]() + +```go +func (*GetRuleSetRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetRuleSetRequest.ProtoReflect.Descriptor instead. + + +### func \(\*GetRuleSetRequest\) [GetId]() + +```go +func (x *GetRuleSetRequest) GetId() string +``` + + + + +### func \(\*GetRuleSetRequest\) [GetVersion]() + +```go +func (x *GetRuleSetRequest) GetVersion() string +``` + + + + +### func \(\*GetRuleSetRequest\) [ProtoMessage]() + +```go +func (*GetRuleSetRequest) ProtoMessage() +``` + + + + +### func \(\*GetRuleSetRequest\) [ProtoReflect]() + +```go +func (x *GetRuleSetRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetRuleSetRequest\) [Reset]() + +```go +func (x *GetRuleSetRequest) Reset() +``` + + + + +### func \(\*GetRuleSetRequest\) [String]() + +```go +func (x *GetRuleSetRequest) String() string +``` + + + + +## type [GetRuleSetResponse]() + +Response with rule set + +```go +type GetRuleSetResponse struct { + RuleSet *RuleSet `protobuf:"bytes,1,opt,name=rule_set,json=ruleSet,proto3" json:"rule_set,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*GetRuleSetResponse\) [Descriptor]() + +```go +func (*GetRuleSetResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetRuleSetResponse.ProtoReflect.Descriptor instead. + + +### func \(\*GetRuleSetResponse\) [GetErrorMessage]() + +```go +func (x *GetRuleSetResponse) GetErrorMessage() string +``` + + + + +### func \(\*GetRuleSetResponse\) [GetRuleSet]() + +```go +func (x *GetRuleSetResponse) GetRuleSet() *RuleSet +``` + + + + +### func \(\*GetRuleSetResponse\) [ProtoMessage]() + +```go +func (*GetRuleSetResponse) ProtoMessage() +``` + + + + +### func \(\*GetRuleSetResponse\) [ProtoReflect]() + +```go +func (x *GetRuleSetResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetRuleSetResponse\) [Reset]() + +```go +func (x *GetRuleSetResponse) Reset() +``` + + + + +### func \(\*GetRuleSetResponse\) [String]() + +```go +func (x *GetRuleSetResponse) String() string +``` + + + + +## type [GetStatsRequest]() + +Get stats request + +```go +type GetStatsRequest struct { + // contains filtered or unexported fields +} +``` + + +### func \(\*GetStatsRequest\) [Descriptor]() + +```go +func (*GetStatsRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetStatsRequest.ProtoReflect.Descriptor instead. + + +### func \(\*GetStatsRequest\) [ProtoMessage]() + +```go +func (*GetStatsRequest) ProtoMessage() +``` + + + + +### func \(\*GetStatsRequest\) [ProtoReflect]() + +```go +func (x *GetStatsRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetStatsRequest\) [Reset]() + +```go +func (x *GetStatsRequest) Reset() +``` + + + + +### func \(\*GetStatsRequest\) [String]() + +```go +func (x *GetStatsRequest) String() string +``` + + + + +## type [GetStatsResponse]() + +Registry statistics + +```go +type GetStatsResponse struct { + TotalAgents int32 `protobuf:"varint,1,opt,name=total_agents,json=totalAgents,proto3" json:"total_agents,omitempty"` + ActiveAgents int32 `protobuf:"varint,2,opt,name=active_agents,json=activeAgents,proto3" json:"active_agents,omitempty"` + InactiveAgents int32 `protobuf:"varint,3,opt,name=inactive_agents,json=inactiveAgents,proto3" json:"inactive_agents,omitempty"` + SuspendedAgents int32 `protobuf:"varint,4,opt,name=suspended_agents,json=suspendedAgents,proto3" json:"suspended_agents,omitempty"` + PendingAgents int32 `protobuf:"varint,5,opt,name=pending_agents,json=pendingAgents,proto3" json:"pending_agents,omitempty"` + BadgedAgents int32 `protobuf:"varint,6,opt,name=badged_agents,json=badgedAgents,proto3" json:"badged_agents,omitempty"` // Agents with valid badges + AgentsByRating map[string]int32 `protobuf:"bytes,7,rep,name=agents_by_rating,json=agentsByRating,proto3" json:"agents_by_rating,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + AgentsByCapability map[string]int32 `protobuf:"bytes,8,rep,name=agents_by_capability,json=agentsByCapability,proto3" json:"agents_by_capability,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + LastUpdated *Timestamp `protobuf:"bytes,9,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*GetStatsResponse\) [Descriptor]() + +```go +func (*GetStatsResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use GetStatsResponse.ProtoReflect.Descriptor instead. + + +### func \(\*GetStatsResponse\) [GetActiveAgents]() + +```go +func (x *GetStatsResponse) GetActiveAgents() int32 +``` + + + + +### func \(\*GetStatsResponse\) [GetAgentsByCapability]() + +```go +func (x *GetStatsResponse) GetAgentsByCapability() map[string]int32 +``` + + + + +### func \(\*GetStatsResponse\) [GetAgentsByRating]() + +```go +func (x *GetStatsResponse) GetAgentsByRating() map[string]int32 +``` + + + + +### func \(\*GetStatsResponse\) [GetBadgedAgents]() + +```go +func (x *GetStatsResponse) GetBadgedAgents() int32 +``` + + + + +### func \(\*GetStatsResponse\) [GetInactiveAgents]() + +```go +func (x *GetStatsResponse) GetInactiveAgents() int32 +``` + + + + +### func \(\*GetStatsResponse\) [GetLastUpdated]() + +```go +func (x *GetStatsResponse) GetLastUpdated() *Timestamp +``` + + + + +### func \(\*GetStatsResponse\) [GetPendingAgents]() + +```go +func (x *GetStatsResponse) GetPendingAgents() int32 +``` + + + + +### func \(\*GetStatsResponse\) [GetSuspendedAgents]() + +```go +func (x *GetStatsResponse) GetSuspendedAgents() int32 +``` + + + + +### func \(\*GetStatsResponse\) [GetTotalAgents]() + +```go +func (x *GetStatsResponse) GetTotalAgents() int32 +``` + + + + +### func \(\*GetStatsResponse\) [ProtoMessage]() + +```go +func (*GetStatsResponse) ProtoMessage() +``` + + + + +### func \(\*GetStatsResponse\) [ProtoReflect]() + +```go +func (x *GetStatsResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*GetStatsResponse\) [Reset]() + +```go +func (x *GetStatsResponse) Reset() +``` + + + + +### func \(\*GetStatsResponse\) [String]() + +```go +func (x *GetStatsResponse) String() string +``` + + + + +## type [ImportFromDirectoryRequest]() + +Request to import from directory + +```go +type ImportFromDirectoryRequest struct { + DirectoryPath string `protobuf:"bytes,1,opt,name=directory_path,json=directoryPath,proto3" json:"directory_path,omitempty"` + Recursive bool `protobuf:"varint,2,opt,name=recursive,proto3" json:"recursive,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ImportFromDirectoryRequest\) [Descriptor]() + +```go +func (*ImportFromDirectoryRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ImportFromDirectoryRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ImportFromDirectoryRequest\) [GetDirectoryPath]() + +```go +func (x *ImportFromDirectoryRequest) GetDirectoryPath() string +``` + + + + +### func \(\*ImportFromDirectoryRequest\) [GetRecursive]() + +```go +func (x *ImportFromDirectoryRequest) GetRecursive() bool +``` + + + + +### func \(\*ImportFromDirectoryRequest\) [ProtoMessage]() + +```go +func (*ImportFromDirectoryRequest) ProtoMessage() +``` + + + + +### func \(\*ImportFromDirectoryRequest\) [ProtoReflect]() + +```go +func (x *ImportFromDirectoryRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ImportFromDirectoryRequest\) [Reset]() + +```go +func (x *ImportFromDirectoryRequest) Reset() +``` + + + + +### func \(\*ImportFromDirectoryRequest\) [String]() + +```go +func (x *ImportFromDirectoryRequest) String() string +``` + + + + +## type [ImportFromDirectoryResponse]() + +Response for import + +```go +type ImportFromDirectoryResponse struct { + KeysImported int32 `protobuf:"varint,1,opt,name=keys_imported,json=keysImported,proto3" json:"keys_imported,omitempty"` + KeysSkipped int32 `protobuf:"varint,2,opt,name=keys_skipped,json=keysSkipped,proto3" json:"keys_skipped,omitempty"` + Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ImportFromDirectoryResponse\) [Descriptor]() + +```go +func (*ImportFromDirectoryResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ImportFromDirectoryResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ImportFromDirectoryResponse\) [GetErrors]() + +```go +func (x *ImportFromDirectoryResponse) GetErrors() []string +``` + + + + +### func \(\*ImportFromDirectoryResponse\) [GetKeysImported]() + +```go +func (x *ImportFromDirectoryResponse) GetKeysImported() int32 +``` + + + + +### func \(\*ImportFromDirectoryResponse\) [GetKeysSkipped]() + +```go +func (x *ImportFromDirectoryResponse) GetKeysSkipped() int32 +``` + + + + +### func \(\*ImportFromDirectoryResponse\) [ProtoMessage]() + +```go +func (*ImportFromDirectoryResponse) ProtoMessage() +``` + + + + +### func \(\*ImportFromDirectoryResponse\) [ProtoReflect]() + +```go +func (x *ImportFromDirectoryResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ImportFromDirectoryResponse\) [Reset]() + +```go +func (x *ImportFromDirectoryResponse) Reset() +``` + + + + +### func \(\*ImportFromDirectoryResponse\) [String]() + +```go +func (x *ImportFromDirectoryResponse) String() string +``` + + + + +## type [InitRequest]() + +Request to initialize agent identity + +```go +type InitRequest struct { + ApiKey string `protobuf:"bytes,1,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"` // API key for server authentication + AgentId string `protobuf:"bytes,2,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` // Agent UUID to register DID for + ServerUrl string `protobuf:"bytes,3,opt,name=server_url,json=serverUrl,proto3" json:"server_url,omitempty"` // CapiscIO server URL (default: https://api.capisc.io) + OutputDir string `protobuf:"bytes,4,opt,name=output_dir,json=outputDir,proto3" json:"output_dir,omitempty"` // Directory for generated files (default: .capiscio) + Force bool `protobuf:"varint,5,opt,name=force,proto3" json:"force,omitempty"` // Overwrite existing files + Algorithm KeyAlgorithm `protobuf:"varint,6,opt,name=algorithm,proto3,enum=capiscio.v1.KeyAlgorithm" json:"algorithm,omitempty"` // Key algorithm (default: Ed25519) + Metadata map[string]string `protobuf:"bytes,7,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Additional metadata for agent card + // contains filtered or unexported fields +} +``` + + +### func \(\*InitRequest\) [Descriptor]() + +```go +func (*InitRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use InitRequest.ProtoReflect.Descriptor instead. + + +### func \(\*InitRequest\) [GetAgentId]() + +```go +func (x *InitRequest) GetAgentId() string +``` + + + + +### func \(\*InitRequest\) [GetAlgorithm]() + +```go +func (x *InitRequest) GetAlgorithm() KeyAlgorithm +``` + + + + +### func \(\*InitRequest\) [GetApiKey]() + +```go +func (x *InitRequest) GetApiKey() string +``` + + + + +### func \(\*InitRequest\) [GetForce]() + +```go +func (x *InitRequest) GetForce() bool +``` + + + + +### func \(\*InitRequest\) [GetMetadata]() + +```go +func (x *InitRequest) GetMetadata() map[string]string +``` + + + + +### func \(\*InitRequest\) [GetOutputDir]() + +```go +func (x *InitRequest) GetOutputDir() string +``` + + + + +### func \(\*InitRequest\) [GetServerUrl]() + +```go +func (x *InitRequest) GetServerUrl() string +``` + + + + +### func \(\*InitRequest\) [ProtoMessage]() + +```go +func (*InitRequest) ProtoMessage() +``` + + + + +### func \(\*InitRequest\) [ProtoReflect]() + +```go +func (x *InitRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*InitRequest\) [Reset]() + +```go +func (x *InitRequest) Reset() +``` + + + + +### func \(\*InitRequest\) [String]() + +```go +func (x *InitRequest) String() string +``` + + + + +## type [InitResponse]() + +Response from init + +```go +type InitResponse struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` // Generated did:key URI + AgentId string `protobuf:"bytes,2,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` // Registered agent ID + PrivateKeyPath string `protobuf:"bytes,3,opt,name=private_key_path,json=privateKeyPath,proto3" json:"private_key_path,omitempty"` // Path to private key file + PublicKeyPath string `protobuf:"bytes,4,opt,name=public_key_path,json=publicKeyPath,proto3" json:"public_key_path,omitempty"` // Path to public key file + AgentCardPath string `protobuf:"bytes,5,opt,name=agent_card_path,json=agentCardPath,proto3" json:"agent_card_path,omitempty"` // Path to agent card JSON + AgentCardJson string `protobuf:"bytes,6,opt,name=agent_card_json,json=agentCardJson,proto3" json:"agent_card_json,omitempty"` // Agent card contents as JSON string + Registered bool `protobuf:"varint,7,opt,name=registered,proto3" json:"registered,omitempty"` // Whether DID was registered with server + ErrorMessage string `protobuf:"bytes,8,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` // Error if any + // contains filtered or unexported fields +} +``` + + +### func \(\*InitResponse\) [Descriptor]() + +```go +func (*InitResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use InitResponse.ProtoReflect.Descriptor instead. + + +### func \(\*InitResponse\) [GetAgentCardJson]() + +```go +func (x *InitResponse) GetAgentCardJson() string +``` + + + + +### func \(\*InitResponse\) [GetAgentCardPath]() + +```go +func (x *InitResponse) GetAgentCardPath() string +``` + + + + +### func \(\*InitResponse\) [GetAgentId]() + +```go +func (x *InitResponse) GetAgentId() string +``` + + + + +### func \(\*InitResponse\) [GetDid]() + +```go +func (x *InitResponse) GetDid() string +``` + + + + +### func \(\*InitResponse\) [GetErrorMessage]() + +```go +func (x *InitResponse) GetErrorMessage() string +``` + + + + +### func \(\*InitResponse\) [GetPrivateKeyPath]() + +```go +func (x *InitResponse) GetPrivateKeyPath() string +``` + + + + +### func \(\*InitResponse\) [GetPublicKeyPath]() + +```go +func (x *InitResponse) GetPublicKeyPath() string +``` + + + + +### func \(\*InitResponse\) [GetRegistered]() + +```go +func (x *InitResponse) GetRegistered() bool +``` + + + + +### func \(\*InitResponse\) [ProtoMessage]() + +```go +func (*InitResponse) ProtoMessage() +``` + + + + +### func \(\*InitResponse\) [ProtoReflect]() + +```go +func (x *InitResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*InitResponse\) [Reset]() + +```go +func (x *InitResponse) Reset() +``` + + + + +### func \(\*InitResponse\) [String]() + +```go +func (x *InitResponse) String() string +``` + + + + +## type [IsAgentDIDRequest]() + +Request to check if DID is agent DID + +```go +type IsAgentDIDRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*IsAgentDIDRequest\) [Descriptor]() + +```go +func (*IsAgentDIDRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use IsAgentDIDRequest.ProtoReflect.Descriptor instead. + + +### func \(\*IsAgentDIDRequest\) [GetDid]() + +```go +func (x *IsAgentDIDRequest) GetDid() string +``` + + + + +### func \(\*IsAgentDIDRequest\) [ProtoMessage]() + +```go +func (*IsAgentDIDRequest) ProtoMessage() +``` + + + + +### func \(\*IsAgentDIDRequest\) [ProtoReflect]() + +```go +func (x *IsAgentDIDRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*IsAgentDIDRequest\) [Reset]() + +```go +func (x *IsAgentDIDRequest) Reset() +``` + + + + +### func \(\*IsAgentDIDRequest\) [String]() + +```go +func (x *IsAgentDIDRequest) String() string +``` + + + + +## type [IsAgentDIDResponse]() + +Response for agent DID check + +```go +type IsAgentDIDResponse struct { + IsAgentDid bool `protobuf:"varint,1,opt,name=is_agent_did,json=isAgentDid,proto3" json:"is_agent_did,omitempty"` + AgentId string `protobuf:"bytes,2,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` // Extracted agent ID if valid + // contains filtered or unexported fields +} +``` + + +### func \(\*IsAgentDIDResponse\) [Descriptor]() + +```go +func (*IsAgentDIDResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use IsAgentDIDResponse.ProtoReflect.Descriptor instead. + + +### func \(\*IsAgentDIDResponse\) [GetAgentId]() + +```go +func (x *IsAgentDIDResponse) GetAgentId() string +``` + + + + +### func \(\*IsAgentDIDResponse\) [GetIsAgentDid]() + +```go +func (x *IsAgentDIDResponse) GetIsAgentDid() bool +``` + + + + +### func \(\*IsAgentDIDResponse\) [ProtoMessage]() + +```go +func (*IsAgentDIDResponse) ProtoMessage() +``` + + + + +### func \(\*IsAgentDIDResponse\) [ProtoReflect]() + +```go +func (x *IsAgentDIDResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*IsAgentDIDResponse\) [Reset]() + +```go +func (x *IsAgentDIDResponse) Reset() +``` + + + + +### func \(\*IsAgentDIDResponse\) [String]() + +```go +func (x *IsAgentDIDResponse) String() string +``` + + + + +## type [IsRevokedRequest]() + +Request to check revocation + +```go +type IsRevokedRequest struct { + Subject string `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"` // DID or key ID to check + AtTime *Timestamp `protobuf:"bytes,2,opt,name=at_time,json=atTime,proto3" json:"at_time,omitempty"` // Optional: check at specific time + CheckRemote bool `protobuf:"varint,3,opt,name=check_remote,json=checkRemote,proto3" json:"check_remote,omitempty"` // Whether to check remote lists + // contains filtered or unexported fields +} +``` + + +### func \(\*IsRevokedRequest\) [Descriptor]() + +```go +func (*IsRevokedRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use IsRevokedRequest.ProtoReflect.Descriptor instead. + + +### func \(\*IsRevokedRequest\) [GetAtTime]() + +```go +func (x *IsRevokedRequest) GetAtTime() *Timestamp +``` + + + + +### func \(\*IsRevokedRequest\) [GetCheckRemote]() + +```go +func (x *IsRevokedRequest) GetCheckRemote() bool +``` + + + + +### func \(\*IsRevokedRequest\) [GetSubject]() + +```go +func (x *IsRevokedRequest) GetSubject() string +``` + + + + +### func \(\*IsRevokedRequest\) [ProtoMessage]() + +```go +func (*IsRevokedRequest) ProtoMessage() +``` + + + + +### func \(\*IsRevokedRequest\) [ProtoReflect]() + +```go +func (x *IsRevokedRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*IsRevokedRequest\) [Reset]() + +```go +func (x *IsRevokedRequest) Reset() +``` + + + + +### func \(\*IsRevokedRequest\) [String]() + +```go +func (x *IsRevokedRequest) String() string +``` + + + + +## type [IsRevokedResponse]() + +Response for revocation check + +```go +type IsRevokedResponse struct { + IsRevoked bool `protobuf:"varint,1,opt,name=is_revoked,json=isRevoked,proto3" json:"is_revoked,omitempty"` + Entry *RevocationEntry `protobuf:"bytes,2,opt,name=entry,proto3" json:"entry,omitempty"` // If revoked, the entry + Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"` // Where revocation was found + // contains filtered or unexported fields +} +``` + + +### func \(\*IsRevokedResponse\) [Descriptor]() + +```go +func (*IsRevokedResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use IsRevokedResponse.ProtoReflect.Descriptor instead. + + +### func \(\*IsRevokedResponse\) [GetEntry]() + +```go +func (x *IsRevokedResponse) GetEntry() *RevocationEntry +``` + + + + +### func \(\*IsRevokedResponse\) [GetIsRevoked]() + +```go +func (x *IsRevokedResponse) GetIsRevoked() bool +``` + + + + +### func \(\*IsRevokedResponse\) [GetSource]() + +```go +func (x *IsRevokedResponse) GetSource() string +``` + + + + +### func \(\*IsRevokedResponse\) [ProtoMessage]() + +```go +func (*IsRevokedResponse) ProtoMessage() +``` + + + + +### func \(\*IsRevokedResponse\) [ProtoReflect]() + +```go +func (x *IsRevokedResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*IsRevokedResponse\) [Reset]() + +```go +func (x *IsRevokedResponse) Reset() +``` + + + + +### func \(\*IsRevokedResponse\) [String]() + +```go +func (x *IsRevokedResponse) String() string +``` + + + + +## type [IsTrustedRequest]() + +Request to check if trusted + +```go +type IsTrustedRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*IsTrustedRequest\) [Descriptor]() + +```go +func (*IsTrustedRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use IsTrustedRequest.ProtoReflect.Descriptor instead. + + +### func \(\*IsTrustedRequest\) [GetDid]() + +```go +func (x *IsTrustedRequest) GetDid() string +``` + + + + +### func \(\*IsTrustedRequest\) [ProtoMessage]() + +```go +func (*IsTrustedRequest) ProtoMessage() +``` + + + + +### func \(\*IsTrustedRequest\) [ProtoReflect]() + +```go +func (x *IsTrustedRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*IsTrustedRequest\) [Reset]() + +```go +func (x *IsTrustedRequest) Reset() +``` + + + + +### func \(\*IsTrustedRequest\) [String]() + +```go +func (x *IsTrustedRequest) String() string +``` + + + + +## type [IsTrustedResponse]() + +Response for trust check + +```go +type IsTrustedResponse struct { + IsTrusted bool `protobuf:"varint,1,opt,name=is_trusted,json=isTrusted,proto3" json:"is_trusted,omitempty"` + Key *TrustedKey `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` // If trusted, the matching key + // contains filtered or unexported fields +} +``` + + +### func \(\*IsTrustedResponse\) [Descriptor]() + +```go +func (*IsTrustedResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use IsTrustedResponse.ProtoReflect.Descriptor instead. + + +### func \(\*IsTrustedResponse\) [GetIsTrusted]() + +```go +func (x *IsTrustedResponse) GetIsTrusted() bool +``` + + + + +### func \(\*IsTrustedResponse\) [GetKey]() + +```go +func (x *IsTrustedResponse) GetKey() *TrustedKey +``` + + + + +### func \(\*IsTrustedResponse\) [ProtoMessage]() + +```go +func (*IsTrustedResponse) ProtoMessage() +``` + + + + +### func \(\*IsTrustedResponse\) [ProtoReflect]() + +```go +func (x *IsTrustedResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*IsTrustedResponse\) [Reset]() + +```go +func (x *IsTrustedResponse) Reset() +``` + + + + +### func \(\*IsTrustedResponse\) [String]() + +```go +func (x *IsTrustedResponse) String() string +``` + + + + +## type [KeeperEvent]() + +Event emitted by the badge keeper + +```go +type KeeperEvent struct { + + // Event type + Type KeeperEventType `protobuf:"varint,1,opt,name=type,proto3,enum=capiscio.v1.KeeperEventType" json:"type,omitempty"` + // Badge JTI (for RENEWED events) + BadgeJti string `protobuf:"bytes,2,opt,name=badge_jti,json=badgeJti,proto3" json:"badge_jti,omitempty"` + // Subject DID (for RENEWED events) + Subject string `protobuf:"bytes,3,opt,name=subject,proto3" json:"subject,omitempty"` + // Trust level (for RENEWED events) + TrustLevel TrustLevel `protobuf:"varint,4,opt,name=trust_level,json=trustLevel,proto3,enum=capiscio.v1.TrustLevel" json:"trust_level,omitempty"` + // When the badge expires (Unix timestamp, for RENEWED events) + ExpiresAt int64 `protobuf:"varint,5,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + // Error message (for ERROR events) + Error string `protobuf:"bytes,6,opt,name=error,proto3" json:"error,omitempty"` + // Error code (for ERROR events) + ErrorCode string `protobuf:"bytes,7,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + // Timestamp of the event (Unix timestamp) + Timestamp int64 `protobuf:"varint,8,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // The badge token itself (for RENEWED events, optional) + Token string `protobuf:"bytes,9,opt,name=token,proto3" json:"token,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*KeeperEvent\) [Descriptor]() + +```go +func (*KeeperEvent) Descriptor() ([]byte, []int) +``` + +Deprecated: Use KeeperEvent.ProtoReflect.Descriptor instead. + + +### func \(\*KeeperEvent\) [GetBadgeJti]() + +```go +func (x *KeeperEvent) GetBadgeJti() string +``` + + + + +### func \(\*KeeperEvent\) [GetError]() + +```go +func (x *KeeperEvent) GetError() string +``` + + + + +### func \(\*KeeperEvent\) [GetErrorCode]() + +```go +func (x *KeeperEvent) GetErrorCode() string +``` + + + + +### func \(\*KeeperEvent\) [GetExpiresAt]() + +```go +func (x *KeeperEvent) GetExpiresAt() int64 +``` + + + + +### func \(\*KeeperEvent\) [GetSubject]() + +```go +func (x *KeeperEvent) GetSubject() string +``` + + + + +### func \(\*KeeperEvent\) [GetTimestamp]() + +```go +func (x *KeeperEvent) GetTimestamp() int64 +``` + + + + +### func \(\*KeeperEvent\) [GetToken]() + +```go +func (x *KeeperEvent) GetToken() string +``` + + + + +### func \(\*KeeperEvent\) [GetTrustLevel]() + +```go +func (x *KeeperEvent) GetTrustLevel() TrustLevel +``` + + + + +### func \(\*KeeperEvent\) [GetType]() + +```go +func (x *KeeperEvent) GetType() KeeperEventType +``` + + + + +### func \(\*KeeperEvent\) [ProtoMessage]() + +```go +func (*KeeperEvent) ProtoMessage() +``` + + + + +### func \(\*KeeperEvent\) [ProtoReflect]() + +```go +func (x *KeeperEvent) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*KeeperEvent\) [Reset]() + +```go +func (x *KeeperEvent) Reset() +``` + + + + +### func \(\*KeeperEvent\) [String]() + +```go +func (x *KeeperEvent) String() string +``` + + + + +## type [KeeperEventType]() + +Event types emitted by the keeper + +```go +type KeeperEventType int32 +``` + + + +```go +const ( + KeeperEventType_KEEPER_EVENT_UNSPECIFIED KeeperEventType = 0 + KeeperEventType_KEEPER_EVENT_STARTED KeeperEventType = 1 // Keeper started successfully + KeeperEventType_KEEPER_EVENT_RENEWED KeeperEventType = 2 // Badge was renewed + KeeperEventType_KEEPER_EVENT_ERROR KeeperEventType = 3 // An error occurred (non-fatal) + KeeperEventType_KEEPER_EVENT_STOPPED KeeperEventType = 4 // Keeper stopped (client disconnect or fatal error) +) +``` + + +### func \(KeeperEventType\) [Descriptor]() + +```go +func (KeeperEventType) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(KeeperEventType\) [Enum]() + +```go +func (x KeeperEventType) Enum() *KeeperEventType +``` + + + + +### func \(KeeperEventType\) [EnumDescriptor]() + +```go +func (KeeperEventType) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use KeeperEventType.Descriptor instead. + + +### func \(KeeperEventType\) [Number]() + +```go +func (x KeeperEventType) Number() protoreflect.EnumNumber +``` + + + + +### func \(KeeperEventType\) [String]() + +```go +func (x KeeperEventType) String() string +``` + + + + +### func \(KeeperEventType\) [Type]() + +```go +func (KeeperEventType) Type() protoreflect.EnumType +``` + + + + +## type [KeeperMode]() + +Keeper operation mode + +```go +type KeeperMode int32 +``` + + + +```go +const ( + KeeperMode_KEEPER_MODE_UNSPECIFIED KeeperMode = 0 + KeeperMode_KEEPER_MODE_CA KeeperMode = 1 // Request badges from CA + KeeperMode_KEEPER_MODE_SELF_SIGN KeeperMode = 2 // Self-sign badges locally (development) +) +``` + + +### func \(KeeperMode\) [Descriptor]() + +```go +func (KeeperMode) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(KeeperMode\) [Enum]() + +```go +func (x KeeperMode) Enum() *KeeperMode +``` + + + + +### func \(KeeperMode\) [EnumDescriptor]() + +```go +func (KeeperMode) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use KeeperMode.Descriptor instead. + + +### func \(KeeperMode\) [Number]() + +```go +func (x KeeperMode) Number() protoreflect.EnumNumber +``` + + + + +### func \(KeeperMode\) [String]() + +```go +func (x KeeperMode) String() string +``` + + + + +### func \(KeeperMode\) [Type]() + +```go +func (KeeperMode) Type() protoreflect.EnumType +``` + + + + +## type [KeyAlgorithm]() + +Key algorithms supported + +```go +type KeyAlgorithm int32 +``` + + + +```go +const ( + KeyAlgorithm_KEY_ALGORITHM_UNSPECIFIED KeyAlgorithm = 0 + KeyAlgorithm_KEY_ALGORITHM_ED25519 KeyAlgorithm = 1 + KeyAlgorithm_KEY_ALGORITHM_ECDSA_P256 KeyAlgorithm = 2 + KeyAlgorithm_KEY_ALGORITHM_ECDSA_P384 KeyAlgorithm = 3 + KeyAlgorithm_KEY_ALGORITHM_RSA_2048 KeyAlgorithm = 4 + KeyAlgorithm_KEY_ALGORITHM_RSA_4096 KeyAlgorithm = 5 +) +``` + + +### func \(KeyAlgorithm\) [Descriptor]() + +```go +func (KeyAlgorithm) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(KeyAlgorithm\) [Enum]() + +```go +func (x KeyAlgorithm) Enum() *KeyAlgorithm +``` + + + + +### func \(KeyAlgorithm\) [EnumDescriptor]() + +```go +func (KeyAlgorithm) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use KeyAlgorithm.Descriptor instead. + + +### func \(KeyAlgorithm\) [Number]() + +```go +func (x KeyAlgorithm) Number() protoreflect.EnumNumber +``` + + + + +### func \(KeyAlgorithm\) [String]() + +```go +func (x KeyAlgorithm) String() string +``` + + + + +### func \(KeyAlgorithm\) [Type]() + +```go +func (KeyAlgorithm) Type() protoreflect.EnumType +``` + + + + +## type [KeyFormat]() + +Key format types + +```go +type KeyFormat int32 +``` + + + +```go +const ( + KeyFormat_KEY_FORMAT_UNSPECIFIED KeyFormat = 0 + KeyFormat_KEY_FORMAT_JWK KeyFormat = 1 + KeyFormat_KEY_FORMAT_PEM KeyFormat = 2 + KeyFormat_KEY_FORMAT_DER KeyFormat = 3 +) +``` + + +### func \(KeyFormat\) [Descriptor]() + +```go +func (KeyFormat) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(KeyFormat\) [Enum]() + +```go +func (x KeyFormat) Enum() *KeyFormat +``` + + + + +### func \(KeyFormat\) [EnumDescriptor]() + +```go +func (KeyFormat) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use KeyFormat.Descriptor instead. + + +### func \(KeyFormat\) [Number]() + +```go +func (x KeyFormat) Number() protoreflect.EnumNumber +``` + + + + +### func \(KeyFormat\) [String]() + +```go +func (x KeyFormat) String() string +``` + + + + +### func \(KeyFormat\) [Type]() + +```go +func (KeyFormat) Type() protoreflect.EnumType +``` + + + + +## type [KeyValue]() + +Generic key\-value pair + +```go +type KeyValue struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*KeyValue\) [Descriptor]() + +```go +func (*KeyValue) Descriptor() ([]byte, []int) +``` + +Deprecated: Use KeyValue.ProtoReflect.Descriptor instead. + + +### func \(\*KeyValue\) [GetKey]() + +```go +func (x *KeyValue) GetKey() string +``` + + + + +### func \(\*KeyValue\) [GetValue]() + +```go +func (x *KeyValue) GetValue() string +``` + + + + +### func \(\*KeyValue\) [ProtoMessage]() + +```go +func (*KeyValue) ProtoMessage() +``` + + + + +### func \(\*KeyValue\) [ProtoReflect]() + +```go +func (x *KeyValue) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*KeyValue\) [Reset]() + +```go +func (x *KeyValue) Reset() +``` + + + + +### func \(\*KeyValue\) [String]() + +```go +func (x *KeyValue) String() string +``` + + + + +## type [ListAgentsRequest]() + +List agents request + +```go +type ListAgentsRequest struct { + StatusFilter AgentStatus `protobuf:"varint,1,opt,name=status_filter,json=statusFilter,proto3,enum=capiscio.v1.AgentStatus" json:"status_filter,omitempty"` + Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Cursor string `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ListAgentsRequest\) [Descriptor]() + +```go +func (*ListAgentsRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ListAgentsRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ListAgentsRequest\) [GetCursor]() + +```go +func (x *ListAgentsRequest) GetCursor() string +``` + + + + +### func \(\*ListAgentsRequest\) [GetLimit]() + +```go +func (x *ListAgentsRequest) GetLimit() int32 +``` + + + + +### func \(\*ListAgentsRequest\) [GetStatusFilter]() + +```go +func (x *ListAgentsRequest) GetStatusFilter() AgentStatus +``` + + + + +### func \(\*ListAgentsRequest\) [ProtoMessage]() + +```go +func (*ListAgentsRequest) ProtoMessage() +``` + + + + +### func \(\*ListAgentsRequest\) [ProtoReflect]() + +```go +func (x *ListAgentsRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ListAgentsRequest\) [Reset]() + +```go +func (x *ListAgentsRequest) Reset() +``` + + + + +### func \(\*ListAgentsRequest\) [String]() + +```go +func (x *ListAgentsRequest) String() string +``` + + + + +## type [ListAgentsResponse]() + +List agents response + +```go +type ListAgentsResponse struct { + Agents []*RegisteredAgent `protobuf:"bytes,1,rep,name=agents,proto3" json:"agents,omitempty"` + NextCursor string `protobuf:"bytes,2,opt,name=next_cursor,json=nextCursor,proto3" json:"next_cursor,omitempty"` + TotalCount int32 `protobuf:"varint,3,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ListAgentsResponse\) [Descriptor]() + +```go +func (*ListAgentsResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ListAgentsResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ListAgentsResponse\) [GetAgents]() + +```go +func (x *ListAgentsResponse) GetAgents() []*RegisteredAgent +``` + + + + +### func \(\*ListAgentsResponse\) [GetNextCursor]() + +```go +func (x *ListAgentsResponse) GetNextCursor() string +``` + + + + +### func \(\*ListAgentsResponse\) [GetTotalCount]() + +```go +func (x *ListAgentsResponse) GetTotalCount() int32 +``` + + + + +### func \(\*ListAgentsResponse\) [ProtoMessage]() + +```go +func (*ListAgentsResponse) ProtoMessage() +``` + + + + +### func \(\*ListAgentsResponse\) [ProtoReflect]() + +```go +func (x *ListAgentsResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ListAgentsResponse\) [Reset]() + +```go +func (x *ListAgentsResponse) Reset() +``` + + + + +### func \(\*ListAgentsResponse\) [String]() + +```go +func (x *ListAgentsResponse) String() string +``` + + + + +## type [ListKeysRequest]() + +Request to list keys + +```go +type ListKeysRequest struct { + DidFilter string `protobuf:"bytes,1,opt,name=did_filter,json=didFilter,proto3" json:"did_filter,omitempty"` // Optional: filter by DID prefix + Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Cursor string `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ListKeysRequest\) [Descriptor]() + +```go +func (*ListKeysRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ListKeysRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ListKeysRequest\) [GetCursor]() + +```go +func (x *ListKeysRequest) GetCursor() string +``` + + + + +### func \(\*ListKeysRequest\) [GetDidFilter]() + +```go +func (x *ListKeysRequest) GetDidFilter() string +``` + + + + +### func \(\*ListKeysRequest\) [GetLimit]() + +```go +func (x *ListKeysRequest) GetLimit() int32 +``` + + + + +### func \(\*ListKeysRequest\) [ProtoMessage]() + +```go +func (*ListKeysRequest) ProtoMessage() +``` + + + + +### func \(\*ListKeysRequest\) [ProtoReflect]() + +```go +func (x *ListKeysRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ListKeysRequest\) [Reset]() + +```go +func (x *ListKeysRequest) Reset() +``` + + + + +### func \(\*ListKeysRequest\) [String]() + +```go +func (x *ListKeysRequest) String() string +``` + + + + +## type [ListKeysResponse]() + +Response with keys list + +```go +type ListKeysResponse struct { + Keys []*TrustedKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + NextCursor string `protobuf:"bytes,2,opt,name=next_cursor,json=nextCursor,proto3" json:"next_cursor,omitempty"` + TotalCount int32 `protobuf:"varint,3,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ListKeysResponse\) [Descriptor]() + +```go +func (*ListKeysResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ListKeysResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ListKeysResponse\) [GetKeys]() + +```go +func (x *ListKeysResponse) GetKeys() []*TrustedKey +``` + + + + +### func \(\*ListKeysResponse\) [GetNextCursor]() + +```go +func (x *ListKeysResponse) GetNextCursor() string +``` + + + + +### func \(\*ListKeysResponse\) [GetTotalCount]() + +```go +func (x *ListKeysResponse) GetTotalCount() int32 +``` + + + + +### func \(\*ListKeysResponse\) [ProtoMessage]() + +```go +func (*ListKeysResponse) ProtoMessage() +``` + + + + +### func \(\*ListKeysResponse\) [ProtoReflect]() + +```go +func (x *ListKeysResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ListKeysResponse\) [Reset]() + +```go +func (x *ListKeysResponse) Reset() +``` + + + + +### func \(\*ListKeysResponse\) [String]() + +```go +func (x *ListKeysResponse) String() string +``` + + + + +## type [ListRevocationsRequest]() + +Request to list revocations + +```go +type ListRevocationsRequest struct { + SubjectFilter string `protobuf:"bytes,1,opt,name=subject_filter,json=subjectFilter,proto3" json:"subject_filter,omitempty"` // Optional: filter by subject prefix + ReasonFilter RevocationReason `protobuf:"varint,2,opt,name=reason_filter,json=reasonFilter,proto3,enum=capiscio.v1.RevocationReason" json:"reason_filter,omitempty"` + Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` + Cursor string `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ListRevocationsRequest\) [Descriptor]() + +```go +func (*ListRevocationsRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ListRevocationsRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ListRevocationsRequest\) [GetCursor]() + +```go +func (x *ListRevocationsRequest) GetCursor() string +``` + + + + +### func \(\*ListRevocationsRequest\) [GetLimit]() + +```go +func (x *ListRevocationsRequest) GetLimit() int32 +``` + + + + +### func \(\*ListRevocationsRequest\) [GetReasonFilter]() + +```go +func (x *ListRevocationsRequest) GetReasonFilter() RevocationReason +``` + + + + +### func \(\*ListRevocationsRequest\) [GetSubjectFilter]() + +```go +func (x *ListRevocationsRequest) GetSubjectFilter() string +``` + + + + +### func \(\*ListRevocationsRequest\) [ProtoMessage]() + +```go +func (*ListRevocationsRequest) ProtoMessage() +``` + + + + +### func \(\*ListRevocationsRequest\) [ProtoReflect]() + +```go +func (x *ListRevocationsRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ListRevocationsRequest\) [Reset]() + +```go +func (x *ListRevocationsRequest) Reset() +``` + + + + +### func \(\*ListRevocationsRequest\) [String]() + +```go +func (x *ListRevocationsRequest) String() string +``` + + + + +## type [ListRevocationsResponse]() + +Response with revocations list + +```go +type ListRevocationsResponse struct { + Entries []*RevocationEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + NextCursor string `protobuf:"bytes,2,opt,name=next_cursor,json=nextCursor,proto3" json:"next_cursor,omitempty"` + TotalCount int32 `protobuf:"varint,3,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ListRevocationsResponse\) [Descriptor]() + +```go +func (*ListRevocationsResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ListRevocationsResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ListRevocationsResponse\) [GetEntries]() + +```go +func (x *ListRevocationsResponse) GetEntries() []*RevocationEntry +``` + + + + +### func \(\*ListRevocationsResponse\) [GetNextCursor]() + +```go +func (x *ListRevocationsResponse) GetNextCursor() string +``` + + + + +### func \(\*ListRevocationsResponse\) [GetTotalCount]() + +```go +func (x *ListRevocationsResponse) GetTotalCount() int32 +``` + + + + +### func \(\*ListRevocationsResponse\) [ProtoMessage]() + +```go +func (*ListRevocationsResponse) ProtoMessage() +``` + + + + +### func \(\*ListRevocationsResponse\) [ProtoReflect]() + +```go +func (x *ListRevocationsResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ListRevocationsResponse\) [Reset]() + +```go +func (x *ListRevocationsResponse) Reset() +``` + + + + +### func \(\*ListRevocationsResponse\) [String]() + +```go +func (x *ListRevocationsResponse) String() string +``` + + + + +## type [ListRuleSetsRequest]() + +Request to list rule sets + +```go +type ListRuleSetsRequest struct { + Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` + Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ListRuleSetsRequest\) [Descriptor]() + +```go +func (*ListRuleSetsRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ListRuleSetsRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ListRuleSetsRequest\) [GetCursor]() + +```go +func (x *ListRuleSetsRequest) GetCursor() string +``` + + + + +### func \(\*ListRuleSetsRequest\) [GetLimit]() + +```go +func (x *ListRuleSetsRequest) GetLimit() int32 +``` + + + + +### func \(\*ListRuleSetsRequest\) [ProtoMessage]() + +```go +func (*ListRuleSetsRequest) ProtoMessage() +``` + + + + +### func \(\*ListRuleSetsRequest\) [ProtoReflect]() + +```go +func (x *ListRuleSetsRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ListRuleSetsRequest\) [Reset]() + +```go +func (x *ListRuleSetsRequest) Reset() +``` + + + + +### func \(\*ListRuleSetsRequest\) [String]() + +```go +func (x *ListRuleSetsRequest) String() string +``` + + + + +## type [ListRuleSetsResponse]() + +Response with rule sets + +```go +type ListRuleSetsResponse struct { + RuleSets []*RuleSet `protobuf:"bytes,1,rep,name=rule_sets,json=ruleSets,proto3" json:"rule_sets,omitempty"` + NextCursor string `protobuf:"bytes,2,opt,name=next_cursor,json=nextCursor,proto3" json:"next_cursor,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ListRuleSetsResponse\) [Descriptor]() + +```go +func (*ListRuleSetsResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ListRuleSetsResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ListRuleSetsResponse\) [GetNextCursor]() + +```go +func (x *ListRuleSetsResponse) GetNextCursor() string +``` + + + + +### func \(\*ListRuleSetsResponse\) [GetRuleSets]() + +```go +func (x *ListRuleSetsResponse) GetRuleSets() []*RuleSet +``` + + + + +### func \(\*ListRuleSetsResponse\) [ProtoMessage]() + +```go +func (*ListRuleSetsResponse) ProtoMessage() +``` + + + + +### func \(\*ListRuleSetsResponse\) [ProtoReflect]() + +```go +func (x *ListRuleSetsResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ListRuleSetsResponse\) [Reset]() + +```go +func (x *ListRuleSetsResponse) Reset() +``` + + + + +### func \(\*ListRuleSetsResponse\) [String]() + +```go +func (x *ListRuleSetsResponse) String() string +``` + + + + +## type [LoadKeyRequest]() + +Request to load key + +```go +type LoadKeyRequest struct { + FilePath string `protobuf:"bytes,1,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"` + Format KeyFormat `protobuf:"varint,2,opt,name=format,proto3,enum=capiscio.v1.KeyFormat" json:"format,omitempty"` + Passphrase string `protobuf:"bytes,3,opt,name=passphrase,proto3" json:"passphrase,omitempty"` // Optional: for encrypted keys + // contains filtered or unexported fields +} +``` + + +### func \(\*LoadKeyRequest\) [Descriptor]() + +```go +func (*LoadKeyRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use LoadKeyRequest.ProtoReflect.Descriptor instead. + + +### func \(\*LoadKeyRequest\) [GetFilePath]() + +```go +func (x *LoadKeyRequest) GetFilePath() string +``` + + + + +### func \(\*LoadKeyRequest\) [GetFormat]() + +```go +func (x *LoadKeyRequest) GetFormat() KeyFormat +``` + + + + +### func \(\*LoadKeyRequest\) [GetPassphrase]() + +```go +func (x *LoadKeyRequest) GetPassphrase() string +``` + + + + +### func \(\*LoadKeyRequest\) [ProtoMessage]() + +```go +func (*LoadKeyRequest) ProtoMessage() +``` + + + + +### func \(\*LoadKeyRequest\) [ProtoReflect]() + +```go +func (x *LoadKeyRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*LoadKeyRequest\) [Reset]() + +```go +func (x *LoadKeyRequest) Reset() +``` + + + + +### func \(\*LoadKeyRequest\) [String]() + +```go +func (x *LoadKeyRequest) String() string +``` + + + + +## type [LoadKeyResponse]() + +Response for load key + +```go +type LoadKeyResponse struct { + KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` + Algorithm KeyAlgorithm `protobuf:"varint,2,opt,name=algorithm,proto3,enum=capiscio.v1.KeyAlgorithm" json:"algorithm,omitempty"` + HasPrivateKey bool `protobuf:"varint,3,opt,name=has_private_key,json=hasPrivateKey,proto3" json:"has_private_key,omitempty"` + ErrorMessage string `protobuf:"bytes,4,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*LoadKeyResponse\) [Descriptor]() + +```go +func (*LoadKeyResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use LoadKeyResponse.ProtoReflect.Descriptor instead. + + +### func \(\*LoadKeyResponse\) [GetAlgorithm]() + +```go +func (x *LoadKeyResponse) GetAlgorithm() KeyAlgorithm +``` + + + + +### func \(\*LoadKeyResponse\) [GetErrorMessage]() + +```go +func (x *LoadKeyResponse) GetErrorMessage() string +``` + + + + +### func \(\*LoadKeyResponse\) [GetHasPrivateKey]() + +```go +func (x *LoadKeyResponse) GetHasPrivateKey() bool +``` + + + + +### func \(\*LoadKeyResponse\) [GetKeyId]() + +```go +func (x *LoadKeyResponse) GetKeyId() string +``` + + + + +### func \(\*LoadKeyResponse\) [ProtoMessage]() + +```go +func (*LoadKeyResponse) ProtoMessage() +``` + + + + +### func \(\*LoadKeyResponse\) [ProtoReflect]() + +```go +func (x *LoadKeyResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*LoadKeyResponse\) [Reset]() + +```go +func (x *LoadKeyResponse) Reset() +``` + + + + +### func \(\*LoadKeyResponse\) [String]() + +```go +func (x *LoadKeyResponse) String() string +``` + + + + +## type [MCPAuthLevel]() + +Authentication level enum + +```go +type MCPAuthLevel int32 +``` + + + +```go +const ( + MCPAuthLevel_MCP_AUTH_LEVEL_UNSPECIFIED MCPAuthLevel = 0 + MCPAuthLevel_MCP_AUTH_LEVEL_ANONYMOUS MCPAuthLevel = 1 + MCPAuthLevel_MCP_AUTH_LEVEL_API_KEY MCPAuthLevel = 2 + MCPAuthLevel_MCP_AUTH_LEVEL_BADGE MCPAuthLevel = 3 +) +``` + + +### func \(MCPAuthLevel\) [Descriptor]() + +```go +func (MCPAuthLevel) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(MCPAuthLevel\) [Enum]() + +```go +func (x MCPAuthLevel) Enum() *MCPAuthLevel +``` + + + + +### func \(MCPAuthLevel\) [EnumDescriptor]() + +```go +func (MCPAuthLevel) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use MCPAuthLevel.Descriptor instead. + + +### func \(MCPAuthLevel\) [Number]() + +```go +func (x MCPAuthLevel) Number() protoreflect.EnumNumber +``` + + + + +### func \(MCPAuthLevel\) [String]() + +```go +func (x MCPAuthLevel) String() string +``` + + + + +### func \(MCPAuthLevel\) [Type]() + +```go +func (MCPAuthLevel) Type() protoreflect.EnumType +``` + + + + +## type [MCPDecision]() + +Access decision enum + +```go +type MCPDecision int32 +``` + + + +```go +const ( + MCPDecision_MCP_DECISION_UNSPECIFIED MCPDecision = 0 + MCPDecision_MCP_DECISION_ALLOW MCPDecision = 1 + MCPDecision_MCP_DECISION_DENY MCPDecision = 2 +) +``` + + +### func \(MCPDecision\) [Descriptor]() + +```go +func (MCPDecision) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(MCPDecision\) [Enum]() + +```go +func (x MCPDecision) Enum() *MCPDecision +``` + + + + +### func \(MCPDecision\) [EnumDescriptor]() + +```go +func (MCPDecision) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use MCPDecision.Descriptor instead. + + +### func \(MCPDecision\) [Number]() + +```go +func (x MCPDecision) Number() protoreflect.EnumNumber +``` + + + + +### func \(MCPDecision\) [String]() + +```go +func (x MCPDecision) String() string +``` + + + + +### func \(MCPDecision\) [Type]() + +```go +func (MCPDecision) Type() protoreflect.EnumType +``` + + + + +## type [MCPDenyReason]() + +Denial reason enum \(RFC\-006 §6.4\) + +```go +type MCPDenyReason int32 +``` + + + +```go +const ( + MCPDenyReason_MCP_DENY_REASON_UNSPECIFIED MCPDenyReason = 0 + MCPDenyReason_MCP_DENY_REASON_BADGE_MISSING MCPDenyReason = 1 // Required but not provided + MCPDenyReason_MCP_DENY_REASON_BADGE_INVALID MCPDenyReason = 2 // Malformed or unverifiable + MCPDenyReason_MCP_DENY_REASON_BADGE_EXPIRED MCPDenyReason = 3 + MCPDenyReason_MCP_DENY_REASON_BADGE_REVOKED MCPDenyReason = 4 + MCPDenyReason_MCP_DENY_REASON_TRUST_INSUFFICIENT MCPDenyReason = 5 // Trust level < min required + MCPDenyReason_MCP_DENY_REASON_TOOL_NOT_ALLOWED MCPDenyReason = 6 // Tool not in allowed list + MCPDenyReason_MCP_DENY_REASON_ISSUER_UNTRUSTED MCPDenyReason = 7 + MCPDenyReason_MCP_DENY_REASON_POLICY_DENIED MCPDenyReason = 8 // Policy evaluation failed +) +``` + + +### func \(MCPDenyReason\) [Descriptor]() + +```go +func (MCPDenyReason) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(MCPDenyReason\) [Enum]() + +```go +func (x MCPDenyReason) Enum() *MCPDenyReason +``` + + + + +### func \(MCPDenyReason\) [EnumDescriptor]() + +```go +func (MCPDenyReason) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use MCPDenyReason.Descriptor instead. + + +### func \(MCPDenyReason\) [Number]() + +```go +func (x MCPDenyReason) Number() protoreflect.EnumNumber +``` + + + + +### func \(MCPDenyReason\) [String]() + +```go +func (x MCPDenyReason) String() string +``` + + + + +### func \(MCPDenyReason\) [Type]() + +```go +func (MCPDenyReason) Type() protoreflect.EnumType +``` + + + + +## type [MCPHealthRequest]() + +Health check request + +```go +type MCPHealthRequest struct { + + // Client SDK version for compatibility check + ClientVersion string `protobuf:"bytes,1,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*MCPHealthRequest\) [Descriptor]() + +```go +func (*MCPHealthRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use MCPHealthRequest.ProtoReflect.Descriptor instead. + + +### func \(\*MCPHealthRequest\) [GetClientVersion]() + +```go +func (x *MCPHealthRequest) GetClientVersion() string +``` + + + + +### func \(\*MCPHealthRequest\) [ProtoMessage]() + +```go +func (*MCPHealthRequest) ProtoMessage() +``` + + + + +### func \(\*MCPHealthRequest\) [ProtoReflect]() + +```go +func (x *MCPHealthRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*MCPHealthRequest\) [Reset]() + +```go +func (x *MCPHealthRequest) Reset() +``` + + + + +### func \(\*MCPHealthRequest\) [String]() + +```go +func (x *MCPHealthRequest) String() string +``` + + + + +## type [MCPHealthResponse]() + +Health check response + +```go +type MCPHealthResponse struct { + + // Whether the service is healthy + Healthy bool `protobuf:"varint,1,opt,name=healthy,proto3" json:"healthy,omitempty"` + // capiscio-core version + CoreVersion string `protobuf:"bytes,2,opt,name=core_version,json=coreVersion,proto3" json:"core_version,omitempty"` + // Proto schema version + ProtoVersion string `protobuf:"bytes,3,opt,name=proto_version,json=protoVersion,proto3" json:"proto_version,omitempty"` + // Whether client version is compatible with this core + VersionCompatible bool `protobuf:"varint,4,opt,name=version_compatible,json=versionCompatible,proto3" json:"version_compatible,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*MCPHealthResponse\) [Descriptor]() + +```go +func (*MCPHealthResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use MCPHealthResponse.ProtoReflect.Descriptor instead. + + +### func \(\*MCPHealthResponse\) [GetCoreVersion]() + +```go +func (x *MCPHealthResponse) GetCoreVersion() string +``` + + + + +### func \(\*MCPHealthResponse\) [GetHealthy]() + +```go +func (x *MCPHealthResponse) GetHealthy() bool +``` + + + + +### func \(\*MCPHealthResponse\) [GetProtoVersion]() + +```go +func (x *MCPHealthResponse) GetProtoVersion() string +``` + + + + +### func \(\*MCPHealthResponse\) [GetVersionCompatible]() + +```go +func (x *MCPHealthResponse) GetVersionCompatible() bool +``` + + + + +### func \(\*MCPHealthResponse\) [ProtoMessage]() + +```go +func (*MCPHealthResponse) ProtoMessage() +``` + + + + +### func \(\*MCPHealthResponse\) [ProtoReflect]() + +```go +func (x *MCPHealthResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*MCPHealthResponse\) [Reset]() + +```go +func (x *MCPHealthResponse) Reset() +``` + + + + +### func \(\*MCPHealthResponse\) [String]() + +```go +func (x *MCPHealthResponse) String() string +``` + + + + +## type [MCPHttpHeaders]() + +HTTP headers containing server identity + +```go +type MCPHttpHeaders struct { + CapiscioServerDid string `protobuf:"bytes,1,opt,name=capiscio_server_did,json=capiscioServerDid,proto3" json:"capiscio_server_did,omitempty"` + CapiscioServerBadge string `protobuf:"bytes,2,opt,name=capiscio_server_badge,json=capiscioServerBadge,proto3" json:"capiscio_server_badge,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*MCPHttpHeaders\) [Descriptor]() + +```go +func (*MCPHttpHeaders) Descriptor() ([]byte, []int) +``` + +Deprecated: Use MCPHttpHeaders.ProtoReflect.Descriptor instead. + + +### func \(\*MCPHttpHeaders\) [GetCapiscioServerBadge]() + +```go +func (x *MCPHttpHeaders) GetCapiscioServerBadge() string +``` + + + + +### func \(\*MCPHttpHeaders\) [GetCapiscioServerDid]() + +```go +func (x *MCPHttpHeaders) GetCapiscioServerDid() string +``` + + + + +### func \(\*MCPHttpHeaders\) [ProtoMessage]() + +```go +func (*MCPHttpHeaders) ProtoMessage() +``` + + + + +### func \(\*MCPHttpHeaders\) [ProtoReflect]() + +```go +func (x *MCPHttpHeaders) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*MCPHttpHeaders\) [Reset]() + +```go +func (x *MCPHttpHeaders) Reset() +``` + + + + +### func \(\*MCPHttpHeaders\) [String]() + +```go +func (x *MCPHttpHeaders) String() string +``` + + + + +## type [MCPJsonRpcMeta]() + +JSON\-RPC \_meta object containing server identity + +```go +type MCPJsonRpcMeta struct { + + // The _meta object as JSON string + MetaJson string `protobuf:"bytes,1,opt,name=meta_json,json=metaJson,proto3" json:"meta_json,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*MCPJsonRpcMeta\) [Descriptor]() + +```go +func (*MCPJsonRpcMeta) Descriptor() ([]byte, []int) +``` + +Deprecated: Use MCPJsonRpcMeta.ProtoReflect.Descriptor instead. + + +### func \(\*MCPJsonRpcMeta\) [GetMetaJson]() + +```go +func (x *MCPJsonRpcMeta) GetMetaJson() string +``` + + + + +### func \(\*MCPJsonRpcMeta\) [ProtoMessage]() + +```go +func (*MCPJsonRpcMeta) ProtoMessage() +``` + + + + +### func \(\*MCPJsonRpcMeta\) [ProtoReflect]() + +```go +func (x *MCPJsonRpcMeta) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*MCPJsonRpcMeta\) [Reset]() + +```go +func (x *MCPJsonRpcMeta) Reset() +``` + + + + +### func \(\*MCPJsonRpcMeta\) [String]() + +```go +func (x *MCPJsonRpcMeta) String() string +``` + + + + +## type [MCPObligation]() + +Obligation returned by PDP \(RFC\-005 §7.1\) + +```go +type MCPObligation struct { + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + ParamsJson string `protobuf:"bytes,2,opt,name=params_json,json=paramsJson,proto3" json:"params_json,omitempty"` // opaque JSON + // contains filtered or unexported fields +} +``` + + +### func \(\*MCPObligation\) [Descriptor]() + +```go +func (*MCPObligation) Descriptor() ([]byte, []int) +``` + +Deprecated: Use MCPObligation.ProtoReflect.Descriptor instead. + + +### func \(\*MCPObligation\) [GetParamsJson]() + +```go +func (x *MCPObligation) GetParamsJson() string +``` + + + + +### func \(\*MCPObligation\) [GetType]() + +```go +func (x *MCPObligation) GetType() string +``` + + + + +### func \(\*MCPObligation\) [ProtoMessage]() + +```go +func (*MCPObligation) ProtoMessage() +``` + + + + +### func \(\*MCPObligation\) [ProtoReflect]() + +```go +func (x *MCPObligation) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*MCPObligation\) [Reset]() + +```go +func (x *MCPObligation) Reset() +``` + + + + +### func \(\*MCPObligation\) [String]() + +```go +func (x *MCPObligation) String() string +``` + + + + +## type [MCPServerErrorCode]() + +Server verification error codes \(RFC\-007 §8\) + +```go +type MCPServerErrorCode int32 +``` + + + +```go +const ( + MCPServerErrorCode_MCP_SERVER_ERROR_NONE MCPServerErrorCode = 0 + MCPServerErrorCode_MCP_SERVER_ERROR_DID_INVALID MCPServerErrorCode = 1 + MCPServerErrorCode_MCP_SERVER_ERROR_BADGE_INVALID MCPServerErrorCode = 2 + MCPServerErrorCode_MCP_SERVER_ERROR_BADGE_EXPIRED MCPServerErrorCode = 3 + MCPServerErrorCode_MCP_SERVER_ERROR_BADGE_REVOKED MCPServerErrorCode = 4 + MCPServerErrorCode_MCP_SERVER_ERROR_TRUST_INSUFFICIENT MCPServerErrorCode = 5 + MCPServerErrorCode_MCP_SERVER_ERROR_ORIGIN_MISMATCH MCPServerErrorCode = 6 + MCPServerErrorCode_MCP_SERVER_ERROR_PATH_MISMATCH MCPServerErrorCode = 7 + MCPServerErrorCode_MCP_SERVER_ERROR_ISSUER_UNTRUSTED MCPServerErrorCode = 8 +) +``` + + +### func \(MCPServerErrorCode\) [Descriptor]() + +```go +func (MCPServerErrorCode) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(MCPServerErrorCode\) [Enum]() + +```go +func (x MCPServerErrorCode) Enum() *MCPServerErrorCode +``` + + + + +### func \(MCPServerErrorCode\) [EnumDescriptor]() + +```go +func (MCPServerErrorCode) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use MCPServerErrorCode.Descriptor instead. + + +### func \(MCPServerErrorCode\) [Number]() + +```go +func (x MCPServerErrorCode) Number() protoreflect.EnumNumber +``` + + + + +### func \(MCPServerErrorCode\) [String]() + +```go +func (x MCPServerErrorCode) String() string +``` + + + + +### func \(MCPServerErrorCode\) [Type]() + +```go +func (MCPServerErrorCode) Type() protoreflect.EnumType +``` + + + + +## type [MCPServerState]() + +Server classification state \(RFC\-007 §5.2\) + +```go +type MCPServerState int32 +``` + + + +```go +const ( + MCPServerState_MCP_SERVER_STATE_UNSPECIFIED MCPServerState = 0 + MCPServerState_MCP_SERVER_STATE_VERIFIED_PRINCIPAL MCPServerState = 1 // Badge verified, trust level established + MCPServerState_MCP_SERVER_STATE_DECLARED_PRINCIPAL MCPServerState = 2 // DID present but no/invalid badge + MCPServerState_MCP_SERVER_STATE_UNVERIFIED_ORIGIN MCPServerState = 3 // No identity disclosed (distinct from Trust Level 0) +) +``` + + +### func \(MCPServerState\) [Descriptor]() + +```go +func (MCPServerState) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(MCPServerState\) [Enum]() + +```go +func (x MCPServerState) Enum() *MCPServerState +``` + + + + +### func \(MCPServerState\) [EnumDescriptor]() + +```go +func (MCPServerState) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use MCPServerState.Descriptor instead. + + +### func \(MCPServerState\) [Number]() + +```go +func (x MCPServerState) Number() protoreflect.EnumNumber +``` + + + + +### func \(MCPServerState\) [String]() + +```go +func (x MCPServerState) String() string +``` + + + + +### func \(MCPServerState\) [Type]() + +```go +func (MCPServerState) Type() protoreflect.EnumType +``` + + + + +## type [MCPServiceClient]() + +MCPServiceClient is the client API for MCPService service. + +For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. + +MCPService provides unified MCP security operations \(RFC\-005, RFC\-006, RFC\-007\) + +```go +type MCPServiceClient interface { + // RFC-006: Evaluate tool access and emit evidence atomically + // Single RPC returns both decision and evidence to avoid partial failures + EvaluateToolAccess(ctx context.Context, in *EvaluateToolAccessRequest, opts ...grpc.CallOption) (*EvaluateToolAccessResponse, error) + // RFC-005: Centralized policy decision via PDP + // Go core owns decision logic, cache, break-glass, telemetry. + // SDK callers own obligation execution and response propagation. + // NEVER returns an RPC error for PDP unreachability — encodes the outcome + // in the response (ALLOW_OBSERVE + error_code) so SDKs don't need to + // distinguish transport errors from policy outcomes. + EvaluatePolicyDecision(ctx context.Context, in *PolicyDecisionRequest, opts ...grpc.CallOption) (*PolicyDecisionResponse, error) + // RFC-007: Verify server identity from disclosed DID + badge + VerifyServerIdentity(ctx context.Context, in *VerifyServerIdentityRequest, opts ...grpc.CallOption) (*VerifyServerIdentityResponse, error) + // RFC-007: Extract server identity from transport headers/meta + ParseServerIdentity(ctx context.Context, in *ParseServerIdentityRequest, opts ...grpc.CallOption) (*ParseServerIdentityResponse, error) + // Health check for client supervision and version handshake + Health(ctx context.Context, in *MCPHealthRequest, opts ...grpc.CallOption) (*MCPHealthResponse, error) +} +``` + + +### func [NewMCPServiceClient]() + +```go +func NewMCPServiceClient(cc grpc.ClientConnInterface) MCPServiceClient +``` + + + + +## type [MCPServiceServer]() + +MCPServiceServer is the server API for MCPService service. All implementations must embed UnimplementedMCPServiceServer for forward compatibility. + +MCPService provides unified MCP security operations \(RFC\-005, RFC\-006, RFC\-007\) + +```go +type MCPServiceServer interface { + // RFC-006: Evaluate tool access and emit evidence atomically + // Single RPC returns both decision and evidence to avoid partial failures + EvaluateToolAccess(context.Context, *EvaluateToolAccessRequest) (*EvaluateToolAccessResponse, error) + // RFC-005: Centralized policy decision via PDP + // Go core owns decision logic, cache, break-glass, telemetry. + // SDK callers own obligation execution and response propagation. + // NEVER returns an RPC error for PDP unreachability — encodes the outcome + // in the response (ALLOW_OBSERVE + error_code) so SDKs don't need to + // distinguish transport errors from policy outcomes. + EvaluatePolicyDecision(context.Context, *PolicyDecisionRequest) (*PolicyDecisionResponse, error) + // RFC-007: Verify server identity from disclosed DID + badge + VerifyServerIdentity(context.Context, *VerifyServerIdentityRequest) (*VerifyServerIdentityResponse, error) + // RFC-007: Extract server identity from transport headers/meta + ParseServerIdentity(context.Context, *ParseServerIdentityRequest) (*ParseServerIdentityResponse, error) + // Health check for client supervision and version handshake + Health(context.Context, *MCPHealthRequest) (*MCPHealthResponse, error) + // contains filtered or unexported methods +} +``` + + +## type [MCPVerifyConfig]() + +Configuration for server identity verification + +```go +type MCPVerifyConfig struct { + + // List of trusted badge issuers + TrustedIssuers []string `protobuf:"bytes,1,rep,name=trusted_issuers,json=trustedIssuers,proto3" json:"trusted_issuers,omitempty"` + // Minimum required trust level (0-4, default 0) + MinTrustLevel int32 `protobuf:"varint,2,opt,name=min_trust_level,json=minTrustLevel,proto3" json:"min_trust_level,omitempty"` + // Accept self-signed did:key badges (Trust Level 0) + AcceptLevelZero bool `protobuf:"varint,3,opt,name=accept_level_zero,json=acceptLevelZero,proto3" json:"accept_level_zero,omitempty"` + // Skip revocation checks (offline mode) + OfflineMode bool `protobuf:"varint,4,opt,name=offline_mode,json=offlineMode,proto3" json:"offline_mode,omitempty"` + // Skip origin binding checks (for trusted gateways) + SkipOriginBinding bool `protobuf:"varint,5,opt,name=skip_origin_binding,json=skipOriginBinding,proto3" json:"skip_origin_binding,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*MCPVerifyConfig\) [Descriptor]() + +```go +func (*MCPVerifyConfig) Descriptor() ([]byte, []int) +``` + +Deprecated: Use MCPVerifyConfig.ProtoReflect.Descriptor instead. + + +### func \(\*MCPVerifyConfig\) [GetAcceptLevelZero]() + +```go +func (x *MCPVerifyConfig) GetAcceptLevelZero() bool +``` + + + + +### func \(\*MCPVerifyConfig\) [GetMinTrustLevel]() + +```go +func (x *MCPVerifyConfig) GetMinTrustLevel() int32 +``` + + + + +### func \(\*MCPVerifyConfig\) [GetOfflineMode]() + +```go +func (x *MCPVerifyConfig) GetOfflineMode() bool +``` + + + + +### func \(\*MCPVerifyConfig\) [GetSkipOriginBinding]() + +```go +func (x *MCPVerifyConfig) GetSkipOriginBinding() bool +``` + + + + +### func \(\*MCPVerifyConfig\) [GetTrustedIssuers]() + +```go +func (x *MCPVerifyConfig) GetTrustedIssuers() []string +``` + + + + +### func \(\*MCPVerifyConfig\) [ProtoMessage]() + +```go +func (*MCPVerifyConfig) ProtoMessage() +``` + + + + +### func \(\*MCPVerifyConfig\) [ProtoReflect]() + +```go +func (x *MCPVerifyConfig) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*MCPVerifyConfig\) [Reset]() + +```go +func (x *MCPVerifyConfig) Reset() +``` + + + + +### func \(\*MCPVerifyConfig\) [String]() + +```go +func (x *MCPVerifyConfig) String() string +``` + + + + +## type [NewAgentDIDRequest]() + +Request to create an agent DID + +```go +type NewAgentDIDRequest struct { + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` + AgentId string `protobuf:"bytes,2,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*NewAgentDIDRequest\) [Descriptor]() + +```go +func (*NewAgentDIDRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use NewAgentDIDRequest.ProtoReflect.Descriptor instead. + + +### func \(\*NewAgentDIDRequest\) [GetAgentId]() + +```go +func (x *NewAgentDIDRequest) GetAgentId() string +``` + + + + +### func \(\*NewAgentDIDRequest\) [GetDomain]() + +```go +func (x *NewAgentDIDRequest) GetDomain() string +``` + + + + +### func \(\*NewAgentDIDRequest\) [ProtoMessage]() + +```go +func (*NewAgentDIDRequest) ProtoMessage() +``` + + + + +### func \(\*NewAgentDIDRequest\) [ProtoReflect]() + +```go +func (x *NewAgentDIDRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*NewAgentDIDRequest\) [Reset]() + +```go +func (x *NewAgentDIDRequest) Reset() +``` + + + + +### func \(\*NewAgentDIDRequest\) [String]() + +```go +func (x *NewAgentDIDRequest) String() string +``` + + + + +## type [NewAgentDIDResponse]() + +Response with created DID + +```go +type NewAgentDIDResponse struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*NewAgentDIDResponse\) [Descriptor]() + +```go +func (*NewAgentDIDResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use NewAgentDIDResponse.ProtoReflect.Descriptor instead. + + +### func \(\*NewAgentDIDResponse\) [GetDid]() + +```go +func (x *NewAgentDIDResponse) GetDid() string +``` + + + + +### func \(\*NewAgentDIDResponse\) [GetErrorMessage]() + +```go +func (x *NewAgentDIDResponse) GetErrorMessage() string +``` + + + + +### func \(\*NewAgentDIDResponse\) [ProtoMessage]() + +```go +func (*NewAgentDIDResponse) ProtoMessage() +``` + + + + +### func \(\*NewAgentDIDResponse\) [ProtoReflect]() + +```go +func (x *NewAgentDIDResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*NewAgentDIDResponse\) [Reset]() + +```go +func (x *NewAgentDIDResponse) Reset() +``` + + + + +### func \(\*NewAgentDIDResponse\) [String]() + +```go +func (x *NewAgentDIDResponse) String() string +``` + + + + +## type [NewCapiscIOAgentDIDRequest]() + +Request to create a Capiscio registry DID + +```go +type NewCapiscIOAgentDIDRequest struct { + AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*NewCapiscIOAgentDIDRequest\) [Descriptor]() + +```go +func (*NewCapiscIOAgentDIDRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use NewCapiscIOAgentDIDRequest.ProtoReflect.Descriptor instead. + + +### func \(\*NewCapiscIOAgentDIDRequest\) [GetAgentId]() + +```go +func (x *NewCapiscIOAgentDIDRequest) GetAgentId() string +``` + + + + +### func \(\*NewCapiscIOAgentDIDRequest\) [ProtoMessage]() + +```go +func (*NewCapiscIOAgentDIDRequest) ProtoMessage() +``` + + + + +### func \(\*NewCapiscIOAgentDIDRequest\) [ProtoReflect]() + +```go +func (x *NewCapiscIOAgentDIDRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*NewCapiscIOAgentDIDRequest\) [Reset]() + +```go +func (x *NewCapiscIOAgentDIDRequest) Reset() +``` + + + + +### func \(\*NewCapiscIOAgentDIDRequest\) [String]() + +```go +func (x *NewCapiscIOAgentDIDRequest) String() string +``` + + + + +## type [ParseBadgeRequest]() + +Request to parse badge without verification + +```go +type ParseBadgeRequest struct { + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ParseBadgeRequest\) [Descriptor]() + +```go +func (*ParseBadgeRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ParseBadgeRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ParseBadgeRequest\) [GetToken]() + +```go +func (x *ParseBadgeRequest) GetToken() string +``` + + + + +### func \(\*ParseBadgeRequest\) [ProtoMessage]() + +```go +func (*ParseBadgeRequest) ProtoMessage() +``` + + + + +### func \(\*ParseBadgeRequest\) [ProtoReflect]() + +```go +func (x *ParseBadgeRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ParseBadgeRequest\) [Reset]() + +```go +func (x *ParseBadgeRequest) Reset() +``` + + + + +### func \(\*ParseBadgeRequest\) [String]() + +```go +func (x *ParseBadgeRequest) String() string +``` + + + + +## type [ParseBadgeResponse]() + +Response with parsed claims + +```go +type ParseBadgeResponse struct { + Claims *BadgeClaims `protobuf:"bytes,1,opt,name=claims,proto3" json:"claims,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ParseBadgeResponse\) [Descriptor]() + +```go +func (*ParseBadgeResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ParseBadgeResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ParseBadgeResponse\) [GetClaims]() + +```go +func (x *ParseBadgeResponse) GetClaims() *BadgeClaims +``` + + + + +### func \(\*ParseBadgeResponse\) [GetErrorMessage]() + +```go +func (x *ParseBadgeResponse) GetErrorMessage() string +``` + + + + +### func \(\*ParseBadgeResponse\) [ProtoMessage]() + +```go +func (*ParseBadgeResponse) ProtoMessage() +``` + + + + +### func \(\*ParseBadgeResponse\) [ProtoReflect]() + +```go +func (x *ParseBadgeResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ParseBadgeResponse\) [Reset]() + +```go +func (x *ParseBadgeResponse) Reset() +``` + + + + +### func \(\*ParseBadgeResponse\) [String]() + +```go +func (x *ParseBadgeResponse) String() string +``` + + + + +## type [ParseDIDRequest]() + +Request to parse a DID + +```go +type ParseDIDRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ParseDIDRequest\) [Descriptor]() + +```go +func (*ParseDIDRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ParseDIDRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ParseDIDRequest\) [GetDid]() + +```go +func (x *ParseDIDRequest) GetDid() string +``` + + + + +### func \(\*ParseDIDRequest\) [ProtoMessage]() + +```go +func (*ParseDIDRequest) ProtoMessage() +``` + + + + +### func \(\*ParseDIDRequest\) [ProtoReflect]() + +```go +func (x *ParseDIDRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ParseDIDRequest\) [Reset]() + +```go +func (x *ParseDIDRequest) Reset() +``` + + + + +### func \(\*ParseDIDRequest\) [String]() + +```go +func (x *ParseDIDRequest) String() string +``` + + + + +## type [ParseDIDResponse]() + +Response with parsed DID + +```go +type ParseDIDResponse struct { + Did *DID `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ParseDIDResponse\) [Descriptor]() + +```go +func (*ParseDIDResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ParseDIDResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ParseDIDResponse\) [GetDid]() + +```go +func (x *ParseDIDResponse) GetDid() *DID +``` + + + + +### func \(\*ParseDIDResponse\) [GetErrorMessage]() + +```go +func (x *ParseDIDResponse) GetErrorMessage() string +``` + + + + +### func \(\*ParseDIDResponse\) [ProtoMessage]() + +```go +func (*ParseDIDResponse) ProtoMessage() +``` + + + + +### func \(\*ParseDIDResponse\) [ProtoReflect]() + +```go +func (x *ParseDIDResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ParseDIDResponse\) [Reset]() + +```go +func (x *ParseDIDResponse) Reset() +``` + + + + +### func \(\*ParseDIDResponse\) [String]() + +```go +func (x *ParseDIDResponse) String() string +``` + + + + +## type [ParseServerIdentityRequest]() + +Request to parse server identity from headers/meta + +```go +type ParseServerIdentityRequest struct { + + // Types that are valid to be assigned to Source: + // + // *ParseServerIdentityRequest_HttpHeaders + // *ParseServerIdentityRequest_JsonrpcMeta + Source isParseServerIdentityRequest_Source `protobuf_oneof:"source"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ParseServerIdentityRequest\) [Descriptor]() + +```go +func (*ParseServerIdentityRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ParseServerIdentityRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ParseServerIdentityRequest\) [GetHttpHeaders]() + +```go +func (x *ParseServerIdentityRequest) GetHttpHeaders() *MCPHttpHeaders +``` + + + + +### func \(\*ParseServerIdentityRequest\) [GetJsonrpcMeta]() + +```go +func (x *ParseServerIdentityRequest) GetJsonrpcMeta() *MCPJsonRpcMeta +``` + + + + +### func \(\*ParseServerIdentityRequest\) [GetSource]() + +```go +func (x *ParseServerIdentityRequest) GetSource() isParseServerIdentityRequest_Source +``` + + + + +### func \(\*ParseServerIdentityRequest\) [ProtoMessage]() + +```go +func (*ParseServerIdentityRequest) ProtoMessage() +``` + + + + +### func \(\*ParseServerIdentityRequest\) [ProtoReflect]() + +```go +func (x *ParseServerIdentityRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ParseServerIdentityRequest\) [Reset]() + +```go +func (x *ParseServerIdentityRequest) Reset() +``` + + + + +### func \(\*ParseServerIdentityRequest\) [String]() + +```go +func (x *ParseServerIdentityRequest) String() string +``` + + + + +## type [ParseServerIdentityRequest\\\_HttpHeaders]() + + + +```go +type ParseServerIdentityRequest_HttpHeaders struct { + HttpHeaders *MCPHttpHeaders `protobuf:"bytes,1,opt,name=http_headers,json=httpHeaders,proto3,oneof"` +} +``` + + +## type [ParseServerIdentityRequest\\\_JsonrpcMeta]() + + + +```go +type ParseServerIdentityRequest_JsonrpcMeta struct { + JsonrpcMeta *MCPJsonRpcMeta `protobuf:"bytes,2,opt,name=jsonrpc_meta,json=jsonrpcMeta,proto3,oneof"` +} +``` + + +## type [ParseServerIdentityResponse]() + +Response from parsing server identity + +```go +type ParseServerIdentityResponse struct { + + // Extracted server DID + ServerDid string `protobuf:"bytes,1,opt,name=server_did,json=serverDid,proto3" json:"server_did,omitempty"` + // Extracted server badge + ServerBadge string `protobuf:"bytes,2,opt,name=server_badge,json=serverBadge,proto3" json:"server_badge,omitempty"` + // Whether any identity information was present + IdentityPresent bool `protobuf:"varint,3,opt,name=identity_present,json=identityPresent,proto3" json:"identity_present,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ParseServerIdentityResponse\) [Descriptor]() + +```go +func (*ParseServerIdentityResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ParseServerIdentityResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ParseServerIdentityResponse\) [GetIdentityPresent]() + +```go +func (x *ParseServerIdentityResponse) GetIdentityPresent() bool +``` + + + + +### func \(\*ParseServerIdentityResponse\) [GetServerBadge]() + +```go +func (x *ParseServerIdentityResponse) GetServerBadge() string +``` + + + + +### func \(\*ParseServerIdentityResponse\) [GetServerDid]() + +```go +func (x *ParseServerIdentityResponse) GetServerDid() string +``` + + + + +### func \(\*ParseServerIdentityResponse\) [ProtoMessage]() + +```go +func (*ParseServerIdentityResponse) ProtoMessage() +``` + + + + +### func \(\*ParseServerIdentityResponse\) [ProtoReflect]() + +```go +func (x *ParseServerIdentityResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ParseServerIdentityResponse\) [Reset]() + +```go +func (x *ParseServerIdentityResponse) Reset() +``` + + + + +### func \(\*ParseServerIdentityResponse\) [String]() + +```go +func (x *ParseServerIdentityResponse) String() string +``` + + + + +## type [PingRequest]() + +Ping request + +```go +type PingRequest struct { + // contains filtered or unexported fields +} +``` + + +### func \(\*PingRequest\) [Descriptor]() + +```go +func (*PingRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use PingRequest.ProtoReflect.Descriptor instead. + + +### func \(\*PingRequest\) [ProtoMessage]() + +```go +func (*PingRequest) ProtoMessage() +``` + + + + +### func \(\*PingRequest\) [ProtoReflect]() + +```go +func (x *PingRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*PingRequest\) [Reset]() + +```go +func (x *PingRequest) Reset() +``` + + + + +### func \(\*PingRequest\) [String]() + +```go +func (x *PingRequest) String() string +``` + + + + +## type [PingResponse]() + +Ping response + +```go +type PingResponse struct { + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + ServerTime *Timestamp `protobuf:"bytes,3,opt,name=server_time,json=serverTime,proto3" json:"server_time,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*PingResponse\) [Descriptor]() + +```go +func (*PingResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use PingResponse.ProtoReflect.Descriptor instead. + + +### func \(\*PingResponse\) [GetServerTime]() + +```go +func (x *PingResponse) GetServerTime() *Timestamp +``` + + + + +### func \(\*PingResponse\) [GetStatus]() + +```go +func (x *PingResponse) GetStatus() string +``` + + + + +### func \(\*PingResponse\) [GetVersion]() + +```go +func (x *PingResponse) GetVersion() string +``` + + + + +### func \(\*PingResponse\) [ProtoMessage]() + +```go +func (*PingResponse) ProtoMessage() +``` + + + + +### func \(\*PingResponse\) [ProtoReflect]() + +```go +func (x *PingResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*PingResponse\) [Reset]() + +```go +func (x *PingResponse) Reset() +``` + + + + +### func \(\*PingResponse\) [String]() + +```go +func (x *PingResponse) String() string +``` + + + + +## type [PolicyAction]() + +Action attributes for policy evaluation. + +```go +type PolicyAction struct { + Operation string `protobuf:"bytes,1,opt,name=operation,proto3" json:"operation,omitempty"` // tool name, HTTP method+route, etc. + CapabilityClass string `protobuf:"bytes,2,opt,name=capability_class,json=capabilityClass,proto3" json:"capability_class,omitempty"` // empty in badge-only mode (RFC-008) + // contains filtered or unexported fields +} +``` + + +### func \(\*PolicyAction\) [Descriptor]() + +```go +func (*PolicyAction) Descriptor() ([]byte, []int) +``` + +Deprecated: Use PolicyAction.ProtoReflect.Descriptor instead. + + +### func \(\*PolicyAction\) [GetCapabilityClass]() + +```go +func (x *PolicyAction) GetCapabilityClass() string +``` + + + + +### func \(\*PolicyAction\) [GetOperation]() + +```go +func (x *PolicyAction) GetOperation() string +``` + + + + +### func \(\*PolicyAction\) [ProtoMessage]() + +```go +func (*PolicyAction) ProtoMessage() +``` + + + + +### func \(\*PolicyAction\) [ProtoReflect]() + +```go +func (x *PolicyAction) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*PolicyAction\) [Reset]() + +```go +func (x *PolicyAction) Reset() +``` + + + + +### func \(\*PolicyAction\) [String]() + +```go +func (x *PolicyAction) String() string +``` + + + + +## type [PolicyConfig]() + +PEP\-level configuration for the policy decision. + +```go +type PolicyConfig struct { + + // PDP endpoint URL. If empty, RPC returns ALLOW (badge-only mode). + PdpEndpoint string `protobuf:"bytes,1,opt,name=pdp_endpoint,json=pdpEndpoint,proto3" json:"pdp_endpoint,omitempty"` + // PDP query timeout in milliseconds. 0 or negative → 500ms default. + PdpTimeoutMs int32 `protobuf:"varint,2,opt,name=pdp_timeout_ms,json=pdpTimeoutMs,proto3" json:"pdp_timeout_ms,omitempty"` + // Enforcement mode: EM-OBSERVE, EM-GUARD, EM-DELEGATE, EM-STRICT. + // Empty → EM-OBSERVE. + EnforcementMode string `protobuf:"bytes,3,opt,name=enforcement_mode,json=enforcementMode,proto3" json:"enforcement_mode,omitempty"` + // PEP identifier (included in PDP requests for audit). + PepId string `protobuf:"bytes,4,opt,name=pep_id,json=pepId,proto3" json:"pep_id,omitempty"` + // Workspace identifier (included in PDP requests). + Workspace string `protobuf:"bytes,5,opt,name=workspace,proto3" json:"workspace,omitempty"` + // Break-glass Ed25519 public key (raw 32 bytes). + // Must be separate from CA badge-signing key. + // Server-side configuration provides the key material directly; + // no filesystem paths cross the RPC boundary. + BreakglassPublicKey []byte `protobuf:"bytes,6,opt,name=breakglass_public_key,json=breakglassPublicKey,proto3" json:"breakglass_public_key,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*PolicyConfig\) [Descriptor]() + +```go +func (*PolicyConfig) Descriptor() ([]byte, []int) +``` + +Deprecated: Use PolicyConfig.ProtoReflect.Descriptor instead. + + +### func \(\*PolicyConfig\) [GetBreakglassPublicKey]() + +```go +func (x *PolicyConfig) GetBreakglassPublicKey() []byte +``` + + + + +### func \(\*PolicyConfig\) [GetEnforcementMode]() + +```go +func (x *PolicyConfig) GetEnforcementMode() string +``` + + + + +### func \(\*PolicyConfig\) [GetPdpEndpoint]() + +```go +func (x *PolicyConfig) GetPdpEndpoint() string +``` + + + + +### func \(\*PolicyConfig\) [GetPdpTimeoutMs]() + +```go +func (x *PolicyConfig) GetPdpTimeoutMs() int32 +``` + + + + +### func \(\*PolicyConfig\) [GetPepId]() + +```go +func (x *PolicyConfig) GetPepId() string +``` + + + + +### func \(\*PolicyConfig\) [GetWorkspace]() + +```go +func (x *PolicyConfig) GetWorkspace() string +``` + + + + +### func \(\*PolicyConfig\) [ProtoMessage]() + +```go +func (*PolicyConfig) ProtoMessage() +``` + + + + +### func \(\*PolicyConfig\) [ProtoReflect]() + +```go +func (x *PolicyConfig) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*PolicyConfig\) [Reset]() + +```go +func (x *PolicyConfig) Reset() +``` + + + + +### func \(\*PolicyConfig\) [String]() + +```go +func (x *PolicyConfig) String() string +``` + + + + +## type [PolicyDecisionRequest]() + +Request for centralized policy decision. The Go core handles: PDP query, decision cache, break\-glass override, enforcement mode logic, and telemetry emission. The SDK caller handles: obligation execution, response propagation, and surface\-specific error handling. + +```go +type PolicyDecisionRequest struct { + + // Subject identity (from badge verification, already completed by SDK) + Subject *PolicySubject `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"` + // What is being attempted + Action *PolicyAction `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"` + // Target resource + Resource *PolicyResource `protobuf:"bytes,3,opt,name=resource,proto3" json:"resource,omitempty"` + // PDP and PEP configuration + Config *PolicyConfig `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"` + // Optional break-glass override token (compact JWS, EdDSA) + BreakglassToken string `protobuf:"bytes,5,opt,name=breakglass_token,json=breakglassToken,proto3" json:"breakglass_token,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*PolicyDecisionRequest\) [Descriptor]() + +```go +func (*PolicyDecisionRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use PolicyDecisionRequest.ProtoReflect.Descriptor instead. + + +### func \(\*PolicyDecisionRequest\) [GetAction]() + +```go +func (x *PolicyDecisionRequest) GetAction() *PolicyAction +``` + + + + +### func \(\*PolicyDecisionRequest\) [GetBreakglassToken]() + +```go +func (x *PolicyDecisionRequest) GetBreakglassToken() string +``` + + + + +### func \(\*PolicyDecisionRequest\) [GetConfig]() + +```go +func (x *PolicyDecisionRequest) GetConfig() *PolicyConfig +``` + + + + +### func \(\*PolicyDecisionRequest\) [GetResource]() + +```go +func (x *PolicyDecisionRequest) GetResource() *PolicyResource +``` + + + + +### func \(\*PolicyDecisionRequest\) [GetSubject]() + +```go +func (x *PolicyDecisionRequest) GetSubject() *PolicySubject +``` + + + + +### func \(\*PolicyDecisionRequest\) [ProtoMessage]() + +```go +func (*PolicyDecisionRequest) ProtoMessage() +``` + + + + +### func \(\*PolicyDecisionRequest\) [ProtoReflect]() + +```go +func (x *PolicyDecisionRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*PolicyDecisionRequest\) [Reset]() + +```go +func (x *PolicyDecisionRequest) Reset() +``` + + + + +### func \(\*PolicyDecisionRequest\) [String]() + +```go +func (x *PolicyDecisionRequest) String() string +``` + + + + +## type [PolicyDecisionResponse]() + +Response from centralized policy decision. This is ALWAYS a successful RPC response — PDP unreachability is encoded in the response fields, never as a gRPC error. SDKs should not need to distinguish transport errors from policy outcomes. + +```go +type PolicyDecisionResponse struct { + + // Policy decision: "ALLOW", "DENY", or "ALLOW_OBSERVE". + // ALLOW_OBSERVE indicates PDP was unreachable in EM-OBSERVE mode. + Decision string `protobuf:"bytes,1,opt,name=decision,proto3" json:"decision,omitempty"` + // Globally unique decision ID from the PDP. + // Synthetic IDs (e.g., "pdp-unavailable", "breakglass-override", "cache-hit") + // are used when the PDP was not consulted. + DecisionId string `protobuf:"bytes,2,opt,name=decision_id,json=decisionId,proto3" json:"decision_id,omitempty"` + // Human-readable reason (populated on DENY or when PDP provides one). + Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` + // Cache TTL in seconds from PDP response. 0 if not cacheable. + Ttl int32 `protobuf:"varint,4,opt,name=ttl,proto3" json:"ttl,omitempty"` + // Obligations the SDK must execute. Obligation *decision* and *registry + // enforcement* is done by the Go core per the EM matrix. Only obligations + // that the core determined should proceed are returned here. + // For EM-OBSERVE: all obligations are returned (for logging). + // For EM-STRICT: only if all known, all succeeded in core pre-check. + Obligations []*MCPObligation `protobuf:"bytes,5,rep,name=obligations,proto3" json:"obligations,omitempty"` + // Enforcement mode that was applied for this decision. + EnforcementMode string `protobuf:"bytes,6,opt,name=enforcement_mode,json=enforcementMode,proto3" json:"enforcement_mode,omitempty"` + // Whether this decision came from cache (vs live PDP query). + CacheHit bool `protobuf:"varint,7,opt,name=cache_hit,json=cacheHit,proto3" json:"cache_hit,omitempty"` + // Whether a break-glass override was applied. + BreakglassOverride bool `protobuf:"varint,8,opt,name=breakglass_override,json=breakglassOverride,proto3" json:"breakglass_override,omitempty"` + // Break-glass token JTI (for audit trail, only set when override applied). + BreakglassJti string `protobuf:"bytes,9,opt,name=breakglass_jti,json=breakglassJti,proto3" json:"breakglass_jti,omitempty"` + // Error code when PDP could not be consulted. + // Empty string when PDP responded normally. + // Values: "pdp_unavailable", "pdp_timeout", "pdp_invalid_response". + ErrorCode string `protobuf:"bytes,10,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + // PDP query latency in milliseconds (0 if cache hit or PDP not consulted). + PdpLatencyMs int64 `protobuf:"varint,11,opt,name=pdp_latency_ms,json=pdpLatencyMs,proto3" json:"pdp_latency_ms,omitempty"` + // Transaction ID (UUID v7) assigned to this decision. + TxnId string `protobuf:"bytes,12,opt,name=txn_id,json=txnId,proto3" json:"txn_id,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*PolicyDecisionResponse\) [Descriptor]() + +```go +func (*PolicyDecisionResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use PolicyDecisionResponse.ProtoReflect.Descriptor instead. + + +### func \(\*PolicyDecisionResponse\) [GetBreakglassJti]() + +```go +func (x *PolicyDecisionResponse) GetBreakglassJti() string +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetBreakglassOverride]() + +```go +func (x *PolicyDecisionResponse) GetBreakglassOverride() bool +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetCacheHit]() + +```go +func (x *PolicyDecisionResponse) GetCacheHit() bool +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetDecision]() + +```go +func (x *PolicyDecisionResponse) GetDecision() string +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetDecisionId]() + +```go +func (x *PolicyDecisionResponse) GetDecisionId() string +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetEnforcementMode]() + +```go +func (x *PolicyDecisionResponse) GetEnforcementMode() string +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetErrorCode]() + +```go +func (x *PolicyDecisionResponse) GetErrorCode() string +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetObligations]() + +```go +func (x *PolicyDecisionResponse) GetObligations() []*MCPObligation +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetPdpLatencyMs]() + +```go +func (x *PolicyDecisionResponse) GetPdpLatencyMs() int64 +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetReason]() + +```go +func (x *PolicyDecisionResponse) GetReason() string +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetTtl]() + +```go +func (x *PolicyDecisionResponse) GetTtl() int32 +``` + + + + +### func \(\*PolicyDecisionResponse\) [GetTxnId]() + +```go +func (x *PolicyDecisionResponse) GetTxnId() string +``` + + + + +### func \(\*PolicyDecisionResponse\) [ProtoMessage]() + +```go +func (*PolicyDecisionResponse) ProtoMessage() +``` + + + + +### func \(\*PolicyDecisionResponse\) [ProtoReflect]() + +```go +func (x *PolicyDecisionResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*PolicyDecisionResponse\) [Reset]() + +```go +func (x *PolicyDecisionResponse) Reset() +``` + + + + +### func \(\*PolicyDecisionResponse\) [String]() + +```go +func (x *PolicyDecisionResponse) String() string +``` + + + + +## type [PolicyResource]() + +Resource attributes for policy evaluation. + +```go +type PolicyResource struct { + Identifier string `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"` // target resource URI + // contains filtered or unexported fields +} +``` + + +### func \(\*PolicyResource\) [Descriptor]() + +```go +func (*PolicyResource) Descriptor() ([]byte, []int) +``` + +Deprecated: Use PolicyResource.ProtoReflect.Descriptor instead. + + +### func \(\*PolicyResource\) [GetIdentifier]() + +```go +func (x *PolicyResource) GetIdentifier() string +``` + + + + +### func \(\*PolicyResource\) [ProtoMessage]() + +```go +func (*PolicyResource) ProtoMessage() +``` + + + + +### func \(\*PolicyResource\) [ProtoReflect]() + +```go +func (x *PolicyResource) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*PolicyResource\) [Reset]() + +```go +func (x *PolicyResource) Reset() +``` + + + + +### func \(\*PolicyResource\) [String]() + +```go +func (x *PolicyResource) String() string +``` + + + + +## type [PolicySubject]() + +Subject attributes for policy evaluation. SDK extracts these from the verified badge before calling this RPC. + +```go +type PolicySubject struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` // Badge sub (agent DID) + BadgeJti string `protobuf:"bytes,2,opt,name=badge_jti,json=badgeJti,proto3" json:"badge_jti,omitempty"` // Badge jti + Ial string `protobuf:"bytes,3,opt,name=ial,proto3" json:"ial,omitempty"` // Badge ial + TrustLevel string `protobuf:"bytes,4,opt,name=trust_level,json=trustLevel,proto3" json:"trust_level,omitempty"` // Badge vc.credentialSubject.level ("1", "2", "3") + BadgeExp int64 `protobuf:"varint,5,opt,name=badge_exp,json=badgeExp,proto3" json:"badge_exp,omitempty"` // Badge exp (Unix seconds) — bounds cache TTL + // contains filtered or unexported fields +} +``` + + +### func \(\*PolicySubject\) [Descriptor]() + +```go +func (*PolicySubject) Descriptor() ([]byte, []int) +``` + +Deprecated: Use PolicySubject.ProtoReflect.Descriptor instead. + + +### func \(\*PolicySubject\) [GetBadgeExp]() + +```go +func (x *PolicySubject) GetBadgeExp() int64 +``` + + + + +### func \(\*PolicySubject\) [GetBadgeJti]() + +```go +func (x *PolicySubject) GetBadgeJti() string +``` + + + + +### func \(\*PolicySubject\) [GetDid]() + +```go +func (x *PolicySubject) GetDid() string +``` + + + + +### func \(\*PolicySubject\) [GetIal]() + +```go +func (x *PolicySubject) GetIal() string +``` + + + + +### func \(\*PolicySubject\) [GetTrustLevel]() + +```go +func (x *PolicySubject) GetTrustLevel() string +``` + + + + +### func \(\*PolicySubject\) [ProtoMessage]() + +```go +func (*PolicySubject) ProtoMessage() +``` + + + + +### func \(\*PolicySubject\) [ProtoReflect]() + +```go +func (x *PolicySubject) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*PolicySubject\) [Reset]() + +```go +func (x *PolicySubject) Reset() +``` + + + + +### func \(\*PolicySubject\) [String]() + +```go +func (x *PolicySubject) String() string +``` + + + + +## type [Rating]() + +Rating levels \(used by scoring\) + +```go +type Rating int32 +``` + + + +```go +const ( + Rating_RATING_UNSPECIFIED Rating = 0 + Rating_RATING_CRITICAL Rating = 1 + Rating_RATING_POOR Rating = 2 + Rating_RATING_FAIR Rating = 3 + Rating_RATING_GOOD Rating = 4 + Rating_RATING_EXCELLENT Rating = 5 +) +``` + + +### func \(Rating\) [Descriptor]() + +```go +func (Rating) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(Rating\) [Enum]() + +```go +func (x Rating) Enum() *Rating +``` + + + + +### func \(Rating\) [EnumDescriptor]() + +```go +func (Rating) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use Rating.Descriptor instead. + + +### func \(Rating\) [Number]() + +```go +func (x Rating) Number() protoreflect.EnumNumber +``` + + + + +### func \(Rating\) [String]() + +```go +func (x Rating) String() string +``` + + + + +### func \(Rating\) [Type]() + +```go +func (Rating) Type() protoreflect.EnumType +``` + + + + +## type [RegisterAgentRequest]() + +Register request + +```go +type RegisterAgentRequest struct { + AgentCardJson string `protobuf:"bytes,1,opt,name=agent_card_json,json=agentCardJson,proto3" json:"agent_card_json,omitempty"` + SignedBadge string `protobuf:"bytes,2,opt,name=signed_badge,json=signedBadge,proto3" json:"signed_badge,omitempty"` // Optional: pre-signed badge + Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"` + Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RegisterAgentRequest\) [Descriptor]() + +```go +func (*RegisterAgentRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RegisterAgentRequest.ProtoReflect.Descriptor instead. + + +### func \(\*RegisterAgentRequest\) [GetAgentCardJson]() + +```go +func (x *RegisterAgentRequest) GetAgentCardJson() string +``` + + + + +### func \(\*RegisterAgentRequest\) [GetMetadata]() + +```go +func (x *RegisterAgentRequest) GetMetadata() map[string]string +``` + + + + +### func \(\*RegisterAgentRequest\) [GetSignedBadge]() + +```go +func (x *RegisterAgentRequest) GetSignedBadge() string +``` + + + + +### func \(\*RegisterAgentRequest\) [GetTags]() + +```go +func (x *RegisterAgentRequest) GetTags() []string +``` + + + + +### func \(\*RegisterAgentRequest\) [ProtoMessage]() + +```go +func (*RegisterAgentRequest) ProtoMessage() +``` + + + + +### func \(\*RegisterAgentRequest\) [ProtoReflect]() + +```go +func (x *RegisterAgentRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RegisterAgentRequest\) [Reset]() + +```go +func (x *RegisterAgentRequest) Reset() +``` + + + + +### func \(\*RegisterAgentRequest\) [String]() + +```go +func (x *RegisterAgentRequest) String() string +``` + + + + +## type [RegisterAgentResponse]() + +Register response + +```go +type RegisterAgentResponse struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + Status AgentStatus `protobuf:"varint,2,opt,name=status,proto3,enum=capiscio.v1.AgentStatus" json:"status,omitempty"` + ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RegisterAgentResponse\) [Descriptor]() + +```go +func (*RegisterAgentResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RegisterAgentResponse.ProtoReflect.Descriptor instead. + + +### func \(\*RegisterAgentResponse\) [GetDid]() + +```go +func (x *RegisterAgentResponse) GetDid() string +``` + + + + +### func \(\*RegisterAgentResponse\) [GetErrorMessage]() + +```go +func (x *RegisterAgentResponse) GetErrorMessage() string +``` + + + + +### func \(\*RegisterAgentResponse\) [GetStatus]() + +```go +func (x *RegisterAgentResponse) GetStatus() AgentStatus +``` + + + + +### func \(\*RegisterAgentResponse\) [ProtoMessage]() + +```go +func (*RegisterAgentResponse) ProtoMessage() +``` + + + + +### func \(\*RegisterAgentResponse\) [ProtoReflect]() + +```go +func (x *RegisterAgentResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RegisterAgentResponse\) [Reset]() + +```go +func (x *RegisterAgentResponse) Reset() +``` + + + + +### func \(\*RegisterAgentResponse\) [String]() + +```go +func (x *RegisterAgentResponse) String() string +``` + + + + +## type [RegisteredAgent]() + +Registered agent information + +```go +type RegisteredAgent struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + AgentCardJson string `protobuf:"bytes,4,opt,name=agent_card_json,json=agentCardJson,proto3" json:"agent_card_json,omitempty"` // Full agent card as JSON + Status AgentStatus `protobuf:"varint,5,opt,name=status,proto3,enum=capiscio.v1.AgentStatus" json:"status,omitempty"` + Badge *BadgeClaims `protobuf:"bytes,6,opt,name=badge,proto3" json:"badge,omitempty"` // Trust badge if signed + Rating Rating `protobuf:"varint,7,opt,name=rating,proto3,enum=capiscio.v1.Rating" json:"rating,omitempty"` + RegisteredAt *Timestamp `protobuf:"bytes,8,opt,name=registered_at,json=registeredAt,proto3" json:"registered_at,omitempty"` + UpdatedAt *Timestamp `protobuf:"bytes,9,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Capabilities []string `protobuf:"bytes,10,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + Tags []string `protobuf:"bytes,11,rep,name=tags,proto3" json:"tags,omitempty"` + Metadata map[string]string `protobuf:"bytes,12,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RegisteredAgent\) [Descriptor]() + +```go +func (*RegisteredAgent) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RegisteredAgent.ProtoReflect.Descriptor instead. + + +### func \(\*RegisteredAgent\) [GetAgentCardJson]() + +```go +func (x *RegisteredAgent) GetAgentCardJson() string +``` + + + + +### func \(\*RegisteredAgent\) [GetBadge]() + +```go +func (x *RegisteredAgent) GetBadge() *BadgeClaims +``` + + + + +### func \(\*RegisteredAgent\) [GetCapabilities]() + +```go +func (x *RegisteredAgent) GetCapabilities() []string +``` + + + + +### func \(\*RegisteredAgent\) [GetDescription]() + +```go +func (x *RegisteredAgent) GetDescription() string +``` + + + + +### func \(\*RegisteredAgent\) [GetDid]() + +```go +func (x *RegisteredAgent) GetDid() string +``` + + + + +### func \(\*RegisteredAgent\) [GetMetadata]() + +```go +func (x *RegisteredAgent) GetMetadata() map[string]string +``` + + + + +### func \(\*RegisteredAgent\) [GetName]() + +```go +func (x *RegisteredAgent) GetName() string +``` + + + + +### func \(\*RegisteredAgent\) [GetRating]() + +```go +func (x *RegisteredAgent) GetRating() Rating +``` + + + + +### func \(\*RegisteredAgent\) [GetRegisteredAt]() + +```go +func (x *RegisteredAgent) GetRegisteredAt() *Timestamp +``` + + + + +### func \(\*RegisteredAgent\) [GetStatus]() + +```go +func (x *RegisteredAgent) GetStatus() AgentStatus +``` + + + + +### func \(\*RegisteredAgent\) [GetTags]() + +```go +func (x *RegisteredAgent) GetTags() []string +``` + + + + +### func \(\*RegisteredAgent\) [GetUpdatedAt]() + +```go +func (x *RegisteredAgent) GetUpdatedAt() *Timestamp +``` + + + + +### func \(\*RegisteredAgent\) [ProtoMessage]() + +```go +func (*RegisteredAgent) ProtoMessage() +``` + + + + +### func \(\*RegisteredAgent\) [ProtoReflect]() + +```go +func (x *RegisteredAgent) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RegisteredAgent\) [Reset]() + +```go +func (x *RegisteredAgent) Reset() +``` + + + + +### func \(\*RegisteredAgent\) [String]() + +```go +func (x *RegisteredAgent) String() string +``` + + + + +## type [RegistryServiceClient]() + +RegistryServiceClient is the client API for RegistryService service. + +For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. + +RegistryService handles agent registration and discovery + +```go +type RegistryServiceClient interface { + // Get an agent card by DID + GetAgent(ctx context.Context, in *GetAgentRequest, opts ...grpc.CallOption) (*GetAgentResponse, error) + // Search for agents + SearchAgents(ctx context.Context, in *SearchAgentsRequest, opts ...grpc.CallOption) (*SearchAgentsResponse, error) + // Register a new agent + RegisterAgent(ctx context.Context, in *RegisterAgentRequest, opts ...grpc.CallOption) (*RegisterAgentResponse, error) + // Update an existing agent + UpdateAgent(ctx context.Context, in *UpdateAgentRequest, opts ...grpc.CallOption) (*UpdateAgentResponse, error) + // Deregister an agent + DeregisterAgent(ctx context.Context, in *DeregisterAgentRequest, opts ...grpc.CallOption) (*DeregisterAgentResponse, error) + // Verify agent registration + VerifyRegistration(ctx context.Context, in *VerifyRegistrationRequest, opts ...grpc.CallOption) (*VerifyRegistrationResponse, error) + // List agents (with pagination) + ListAgents(ctx context.Context, in *ListAgentsRequest, opts ...grpc.CallOption) (*ListAgentsResponse, error) + // Get registry statistics + GetStats(ctx context.Context, in *GetStatsRequest, opts ...grpc.CallOption) (*GetStatsResponse, error) + // Ping registry health + Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingResponse, error) +} +``` + + +### func [NewRegistryServiceClient]() + +```go +func NewRegistryServiceClient(cc grpc.ClientConnInterface) RegistryServiceClient +``` + + + + +## type [RegistryServiceServer]() + +RegistryServiceServer is the server API for RegistryService service. All implementations must embed UnimplementedRegistryServiceServer for forward compatibility. + +RegistryService handles agent registration and discovery + +```go +type RegistryServiceServer interface { + // Get an agent card by DID + GetAgent(context.Context, *GetAgentRequest) (*GetAgentResponse, error) + // Search for agents + SearchAgents(context.Context, *SearchAgentsRequest) (*SearchAgentsResponse, error) + // Register a new agent + RegisterAgent(context.Context, *RegisterAgentRequest) (*RegisterAgentResponse, error) + // Update an existing agent + UpdateAgent(context.Context, *UpdateAgentRequest) (*UpdateAgentResponse, error) + // Deregister an agent + DeregisterAgent(context.Context, *DeregisterAgentRequest) (*DeregisterAgentResponse, error) + // Verify agent registration + VerifyRegistration(context.Context, *VerifyRegistrationRequest) (*VerifyRegistrationResponse, error) + // List agents (with pagination) + ListAgents(context.Context, *ListAgentsRequest) (*ListAgentsResponse, error) + // Get registry statistics + GetStats(context.Context, *GetStatsRequest) (*GetStatsResponse, error) + // Ping registry health + Ping(context.Context, *PingRequest) (*PingResponse, error) + // contains filtered or unexported methods +} +``` + + +## type [RemoveKeyRequest]() + +Request to remove a key + +```go +type RemoveKeyRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + KeyId string `protobuf:"bytes,2,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` // Optional: if not set, removes all keys for DID + // contains filtered or unexported fields +} +``` + + +### func \(\*RemoveKeyRequest\) [Descriptor]() + +```go +func (*RemoveKeyRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RemoveKeyRequest.ProtoReflect.Descriptor instead. + + +### func \(\*RemoveKeyRequest\) [GetDid]() + +```go +func (x *RemoveKeyRequest) GetDid() string +``` + + + + +### func \(\*RemoveKeyRequest\) [GetKeyId]() + +```go +func (x *RemoveKeyRequest) GetKeyId() string +``` + + + + +### func \(\*RemoveKeyRequest\) [ProtoMessage]() + +```go +func (*RemoveKeyRequest) ProtoMessage() +``` + + + + +### func \(\*RemoveKeyRequest\) [ProtoReflect]() + +```go +func (x *RemoveKeyRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RemoveKeyRequest\) [Reset]() + +```go +func (x *RemoveKeyRequest) Reset() +``` + + + + +### func \(\*RemoveKeyRequest\) [String]() + +```go +func (x *RemoveKeyRequest) String() string +``` + + + + +## type [RemoveKeyResponse]() + +Response for remove key + +```go +type RemoveKeyResponse struct { + KeysRemoved int32 `protobuf:"varint,1,opt,name=keys_removed,json=keysRemoved,proto3" json:"keys_removed,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RemoveKeyResponse\) [Descriptor]() + +```go +func (*RemoveKeyResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RemoveKeyResponse.ProtoReflect.Descriptor instead. + + +### func \(\*RemoveKeyResponse\) [GetErrorMessage]() + +```go +func (x *RemoveKeyResponse) GetErrorMessage() string +``` + + + + +### func \(\*RemoveKeyResponse\) [GetKeysRemoved]() + +```go +func (x *RemoveKeyResponse) GetKeysRemoved() int32 +``` + + + + +### func \(\*RemoveKeyResponse\) [ProtoMessage]() + +```go +func (*RemoveKeyResponse) ProtoMessage() +``` + + + + +### func \(\*RemoveKeyResponse\) [ProtoReflect]() + +```go +func (x *RemoveKeyResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RemoveKeyResponse\) [Reset]() + +```go +func (x *RemoveKeyResponse) Reset() +``` + + + + +### func \(\*RemoveKeyResponse\) [String]() + +```go +func (x *RemoveKeyResponse) String() string +``` + + + + +## type [RequestBadgeRequest]() + +Request to obtain a badge from a Certificate Authority + +```go +type RequestBadgeRequest struct { + + // Agent ID (UUID) to request badge for + AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + // CA URL (default: https://registry.capisc.io) + CaUrl string `protobuf:"bytes,2,opt,name=ca_url,json=caUrl,proto3" json:"ca_url,omitempty"` + // API key for authentication with the CA + ApiKey string `protobuf:"bytes,3,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"` + // Agent domain (optional, uses agent's registered domain if not provided) + Domain string `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"` + // Requested TTL in seconds (default: 300, per RFC-002) + TtlSeconds int32 `protobuf:"varint,5,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` + // Requested trust level (1-4, default: 1) + TrustLevel TrustLevel `protobuf:"varint,6,opt,name=trust_level,json=trustLevel,proto3,enum=capiscio.v1.TrustLevel" json:"trust_level,omitempty"` + // Optional audience restrictions + Audience []string `protobuf:"bytes,7,rep,name=audience,proto3" json:"audience,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RequestBadgeRequest\) [Descriptor]() + +```go +func (*RequestBadgeRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RequestBadgeRequest.ProtoReflect.Descriptor instead. + + +### func \(\*RequestBadgeRequest\) [GetAgentId]() + +```go +func (x *RequestBadgeRequest) GetAgentId() string +``` + + + + +### func \(\*RequestBadgeRequest\) [GetApiKey]() + +```go +func (x *RequestBadgeRequest) GetApiKey() string +``` + + + + +### func \(\*RequestBadgeRequest\) [GetAudience]() + +```go +func (x *RequestBadgeRequest) GetAudience() []string +``` + + + + +### func \(\*RequestBadgeRequest\) [GetCaUrl]() + +```go +func (x *RequestBadgeRequest) GetCaUrl() string +``` + + + + +### func \(\*RequestBadgeRequest\) [GetDomain]() + +```go +func (x *RequestBadgeRequest) GetDomain() string +``` + + + + +### func \(\*RequestBadgeRequest\) [GetTrustLevel]() + +```go +func (x *RequestBadgeRequest) GetTrustLevel() TrustLevel +``` + + + + +### func \(\*RequestBadgeRequest\) [GetTtlSeconds]() + +```go +func (x *RequestBadgeRequest) GetTtlSeconds() int32 +``` + + + + +### func \(\*RequestBadgeRequest\) [ProtoMessage]() + +```go +func (*RequestBadgeRequest) ProtoMessage() +``` + + + + +### func \(\*RequestBadgeRequest\) [ProtoReflect]() + +```go +func (x *RequestBadgeRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RequestBadgeRequest\) [Reset]() + +```go +func (x *RequestBadgeRequest) Reset() +``` + + + + +### func \(\*RequestBadgeRequest\) [String]() + +```go +func (x *RequestBadgeRequest) String() string +``` + + + + +## type [RequestBadgeResponse]() + +Response from badge request + +```go +type RequestBadgeResponse struct { + + // Whether the request succeeded + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + // The signed badge token (JWS) + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + // Badge ID (jti) + Jti string `protobuf:"bytes,3,opt,name=jti,proto3" json:"jti,omitempty"` + // Subject DID + Subject string `protobuf:"bytes,4,opt,name=subject,proto3" json:"subject,omitempty"` + // Trust level assigned + TrustLevel TrustLevel `protobuf:"varint,5,opt,name=trust_level,json=trustLevel,proto3,enum=capiscio.v1.TrustLevel" json:"trust_level,omitempty"` + // When the badge expires (Unix timestamp) + ExpiresAt int64 `protobuf:"varint,6,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + // Error message if success=false + Error string `protobuf:"bytes,7,opt,name=error,proto3" json:"error,omitempty"` + // Error code (RFC-002 §8.4 codes) + ErrorCode string `protobuf:"bytes,8,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RequestBadgeResponse\) [Descriptor]() + +```go +func (*RequestBadgeResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RequestBadgeResponse.ProtoReflect.Descriptor instead. + + +### func \(\*RequestBadgeResponse\) [GetError]() + +```go +func (x *RequestBadgeResponse) GetError() string +``` + + + + +### func \(\*RequestBadgeResponse\) [GetErrorCode]() + +```go +func (x *RequestBadgeResponse) GetErrorCode() string +``` + + + + +### func \(\*RequestBadgeResponse\) [GetExpiresAt]() + +```go +func (x *RequestBadgeResponse) GetExpiresAt() int64 +``` + + + + +### func \(\*RequestBadgeResponse\) [GetJti]() + +```go +func (x *RequestBadgeResponse) GetJti() string +``` + + + + +### func \(\*RequestBadgeResponse\) [GetSubject]() + +```go +func (x *RequestBadgeResponse) GetSubject() string +``` + + + + +### func \(\*RequestBadgeResponse\) [GetSuccess]() + +```go +func (x *RequestBadgeResponse) GetSuccess() bool +``` + + + + +### func \(\*RequestBadgeResponse\) [GetToken]() + +```go +func (x *RequestBadgeResponse) GetToken() string +``` + + + + +### func \(\*RequestBadgeResponse\) [GetTrustLevel]() + +```go +func (x *RequestBadgeResponse) GetTrustLevel() TrustLevel +``` + + + + +### func \(\*RequestBadgeResponse\) [ProtoMessage]() + +```go +func (*RequestBadgeResponse) ProtoMessage() +``` + + + + +### func \(\*RequestBadgeResponse\) [ProtoReflect]() + +```go +func (x *RequestBadgeResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RequestBadgeResponse\) [Reset]() + +```go +func (x *RequestBadgeResponse) Reset() +``` + + + + +### func \(\*RequestBadgeResponse\) [String]() + +```go +func (x *RequestBadgeResponse) String() string +``` + + + + +## type [RequestPoPBadgeRequest]() + +Request to obtain a badge using the PoP protocol \(RFC\-003\) + +```go +type RequestPoPBadgeRequest struct { + + // Agent DID (e.g., did:web:registry.capisc.io:agents:my-agent or did:key:z6Mk...) + AgentDid string `protobuf:"bytes,1,opt,name=agent_did,json=agentDid,proto3" json:"agent_did,omitempty"` + // Private key in JWK format (JSON string) for signing the PoP proof + PrivateKeyJwk string `protobuf:"bytes,2,opt,name=private_key_jwk,json=privateKeyJwk,proto3" json:"private_key_jwk,omitempty"` + // CA URL (default: https://registry.capisc.io) + CaUrl string `protobuf:"bytes,3,opt,name=ca_url,json=caUrl,proto3" json:"ca_url,omitempty"` + // API key for authentication with the CA + ApiKey string `protobuf:"bytes,4,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"` + // Requested TTL in seconds (default: 300, per RFC-002) + TtlSeconds int32 `protobuf:"varint,5,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` + // Optional audience restrictions for the issued badge + Audience []string `protobuf:"bytes,6,rep,name=audience,proto3" json:"audience,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RequestPoPBadgeRequest\) [Descriptor]() + +```go +func (*RequestPoPBadgeRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RequestPoPBadgeRequest.ProtoReflect.Descriptor instead. + + +### func \(\*RequestPoPBadgeRequest\) [GetAgentDid]() + +```go +func (x *RequestPoPBadgeRequest) GetAgentDid() string +``` + + + + +### func \(\*RequestPoPBadgeRequest\) [GetApiKey]() + +```go +func (x *RequestPoPBadgeRequest) GetApiKey() string +``` + + + + +### func \(\*RequestPoPBadgeRequest\) [GetAudience]() + +```go +func (x *RequestPoPBadgeRequest) GetAudience() []string +``` + + + + +### func \(\*RequestPoPBadgeRequest\) [GetCaUrl]() + +```go +func (x *RequestPoPBadgeRequest) GetCaUrl() string +``` + + + + +### func \(\*RequestPoPBadgeRequest\) [GetPrivateKeyJwk]() + +```go +func (x *RequestPoPBadgeRequest) GetPrivateKeyJwk() string +``` + + + + +### func \(\*RequestPoPBadgeRequest\) [GetTtlSeconds]() + +```go +func (x *RequestPoPBadgeRequest) GetTtlSeconds() int32 +``` + + + + +### func \(\*RequestPoPBadgeRequest\) [ProtoMessage]() + +```go +func (*RequestPoPBadgeRequest) ProtoMessage() +``` + + + + +### func \(\*RequestPoPBadgeRequest\) [ProtoReflect]() + +```go +func (x *RequestPoPBadgeRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RequestPoPBadgeRequest\) [Reset]() + +```go +func (x *RequestPoPBadgeRequest) Reset() +``` + + + + +### func \(\*RequestPoPBadgeRequest\) [String]() + +```go +func (x *RequestPoPBadgeRequest) String() string +``` + + + + +## type [RequestPoPBadgeResponse]() + +Response from PoP badge request + +```go +type RequestPoPBadgeResponse struct { + + // Whether the request succeeded + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + // The signed badge token (JWS) + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + // Badge ID (jti) + Jti string `protobuf:"bytes,3,opt,name=jti,proto3" json:"jti,omitempty"` + // Subject DID + Subject string `protobuf:"bytes,4,opt,name=subject,proto3" json:"subject,omitempty"` + // Trust level assigned + TrustLevel string `protobuf:"bytes,5,opt,name=trust_level,json=trustLevel,proto3" json:"trust_level,omitempty"` + // Assurance level (always "IAL-1" for PoP badges) + AssuranceLevel string `protobuf:"bytes,6,opt,name=assurance_level,json=assuranceLevel,proto3" json:"assurance_level,omitempty"` + // When the badge expires (Unix timestamp) + ExpiresAt int64 `protobuf:"varint,7,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + // CNF claim (key binding) + Cnf map[string]string `protobuf:"bytes,8,rep,name=cnf,proto3" json:"cnf,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Error message if success=false + Error string `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"` + // Error code + ErrorCode string `protobuf:"bytes,10,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RequestPoPBadgeResponse\) [Descriptor]() + +```go +func (*RequestPoPBadgeResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RequestPoPBadgeResponse.ProtoReflect.Descriptor instead. + + +### func \(\*RequestPoPBadgeResponse\) [GetAssuranceLevel]() + +```go +func (x *RequestPoPBadgeResponse) GetAssuranceLevel() string +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [GetCnf]() + +```go +func (x *RequestPoPBadgeResponse) GetCnf() map[string]string +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [GetError]() + +```go +func (x *RequestPoPBadgeResponse) GetError() string +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [GetErrorCode]() + +```go +func (x *RequestPoPBadgeResponse) GetErrorCode() string +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [GetExpiresAt]() + +```go +func (x *RequestPoPBadgeResponse) GetExpiresAt() int64 +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [GetJti]() + +```go +func (x *RequestPoPBadgeResponse) GetJti() string +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [GetSubject]() + +```go +func (x *RequestPoPBadgeResponse) GetSubject() string +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [GetSuccess]() + +```go +func (x *RequestPoPBadgeResponse) GetSuccess() bool +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [GetToken]() + +```go +func (x *RequestPoPBadgeResponse) GetToken() string +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [GetTrustLevel]() + +```go +func (x *RequestPoPBadgeResponse) GetTrustLevel() string +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [ProtoMessage]() + +```go +func (*RequestPoPBadgeResponse) ProtoMessage() +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [ProtoReflect]() + +```go +func (x *RequestPoPBadgeResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [Reset]() + +```go +func (x *RequestPoPBadgeResponse) Reset() +``` + + + + +### func \(\*RequestPoPBadgeResponse\) [String]() + +```go +func (x *RequestPoPBadgeResponse) String() string +``` + + + + +## type [RevocationEntry]() + +Revocation entry + +```go +type RevocationEntry struct { + Subject string `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"` // DID or key ID being revoked + Reason RevocationReason `protobuf:"varint,2,opt,name=reason,proto3,enum=capiscio.v1.RevocationReason" json:"reason,omitempty"` // Reason for revocation + RevokedAt *Timestamp `protobuf:"bytes,3,opt,name=revoked_at,json=revokedAt,proto3" json:"revoked_at,omitempty"` // When revocation occurred + ExpiresAt *Timestamp `protobuf:"bytes,4,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` // Optional: when revocation expires + Issuer string `protobuf:"bytes,5,opt,name=issuer,proto3" json:"issuer,omitempty"` // Who issued the revocation + Comment string `protobuf:"bytes,6,opt,name=comment,proto3" json:"comment,omitempty"` // Optional comment + // contains filtered or unexported fields +} +``` + + +### func \(\*RevocationEntry\) [Descriptor]() + +```go +func (*RevocationEntry) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RevocationEntry.ProtoReflect.Descriptor instead. + + +### func \(\*RevocationEntry\) [GetComment]() + +```go +func (x *RevocationEntry) GetComment() string +``` + + + + +### func \(\*RevocationEntry\) [GetExpiresAt]() + +```go +func (x *RevocationEntry) GetExpiresAt() *Timestamp +``` + + + + +### func \(\*RevocationEntry\) [GetIssuer]() + +```go +func (x *RevocationEntry) GetIssuer() string +``` + + + + +### func \(\*RevocationEntry\) [GetReason]() + +```go +func (x *RevocationEntry) GetReason() RevocationReason +``` + + + + +### func \(\*RevocationEntry\) [GetRevokedAt]() + +```go +func (x *RevocationEntry) GetRevokedAt() *Timestamp +``` + + + + +### func \(\*RevocationEntry\) [GetSubject]() + +```go +func (x *RevocationEntry) GetSubject() string +``` + + + + +### func \(\*RevocationEntry\) [ProtoMessage]() + +```go +func (*RevocationEntry) ProtoMessage() +``` + + + + +### func \(\*RevocationEntry\) [ProtoReflect]() + +```go +func (x *RevocationEntry) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RevocationEntry\) [Reset]() + +```go +func (x *RevocationEntry) Reset() +``` + + + + +### func \(\*RevocationEntry\) [String]() + +```go +func (x *RevocationEntry) String() string +``` + + + + +## type [RevocationReason]() + +Revocation reason codes + +```go +type RevocationReason int32 +``` + + + +```go +const ( + RevocationReason_REVOCATION_REASON_UNSPECIFIED RevocationReason = 0 + RevocationReason_REVOCATION_REASON_KEY_COMPROMISE RevocationReason = 1 + RevocationReason_REVOCATION_REASON_AFFILIATION_CHANGED RevocationReason = 2 + RevocationReason_REVOCATION_REASON_SUPERSEDED RevocationReason = 3 + RevocationReason_REVOCATION_REASON_CESSATION_OF_OPERATION RevocationReason = 4 + RevocationReason_REVOCATION_REASON_PRIVILEGE_WITHDRAWN RevocationReason = 5 +) +``` + + +### func \(RevocationReason\) [Descriptor]() + +```go +func (RevocationReason) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(RevocationReason\) [Enum]() + +```go +func (x RevocationReason) Enum() *RevocationReason +``` + + + + +### func \(RevocationReason\) [EnumDescriptor]() + +```go +func (RevocationReason) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use RevocationReason.Descriptor instead. + + +### func \(RevocationReason\) [Number]() + +```go +func (x RevocationReason) Number() protoreflect.EnumNumber +``` + + + + +### func \(RevocationReason\) [String]() + +```go +func (x RevocationReason) String() string +``` + + + + +### func \(RevocationReason\) [Type]() + +```go +func (RevocationReason) Type() protoreflect.EnumType +``` + + + + +## type [RevocationServiceClient]() + +RevocationServiceClient is the client API for RevocationService service. + +For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. + +RevocationService manages revocation lists and checks + +```go +type RevocationServiceClient interface { + // Check if a key is revoked + IsRevoked(ctx context.Context, in *IsRevokedRequest, opts ...grpc.CallOption) (*IsRevokedResponse, error) + // Add a revocation entry + Revoke(ctx context.Context, in *RevokeRequest, opts ...grpc.CallOption) (*RevokeResponse, error) + // Remove a revocation entry + Unrevoke(ctx context.Context, in *UnrevokeRequest, opts ...grpc.CallOption) (*UnrevokeResponse, error) + // List revoked entries + ListRevocations(ctx context.Context, in *ListRevocationsRequest, opts ...grpc.CallOption) (*ListRevocationsResponse, error) + // Fetch revocation list from URL + FetchRevocationList(ctx context.Context, in *FetchRevocationListRequest, opts ...grpc.CallOption) (*FetchRevocationListResponse, error) + // Clear the revocation cache + ClearCache(ctx context.Context, in *ClearCacheRequest, opts ...grpc.CallOption) (*ClearCacheResponse, error) + // Get cache statistics + GetCacheStats(ctx context.Context, in *GetCacheStatsRequest, opts ...grpc.CallOption) (*GetCacheStatsResponse, error) +} +``` + + +### func [NewRevocationServiceClient]() + +```go +func NewRevocationServiceClient(cc grpc.ClientConnInterface) RevocationServiceClient +``` + + + + +## type [RevocationServiceServer]() + +RevocationServiceServer is the server API for RevocationService service. All implementations must embed UnimplementedRevocationServiceServer for forward compatibility. + +RevocationService manages revocation lists and checks + +```go +type RevocationServiceServer interface { + // Check if a key is revoked + IsRevoked(context.Context, *IsRevokedRequest) (*IsRevokedResponse, error) + // Add a revocation entry + Revoke(context.Context, *RevokeRequest) (*RevokeResponse, error) + // Remove a revocation entry + Unrevoke(context.Context, *UnrevokeRequest) (*UnrevokeResponse, error) + // List revoked entries + ListRevocations(context.Context, *ListRevocationsRequest) (*ListRevocationsResponse, error) + // Fetch revocation list from URL + FetchRevocationList(context.Context, *FetchRevocationListRequest) (*FetchRevocationListResponse, error) + // Clear the revocation cache + ClearCache(context.Context, *ClearCacheRequest) (*ClearCacheResponse, error) + // Get cache statistics + GetCacheStats(context.Context, *GetCacheStatsRequest) (*GetCacheStatsResponse, error) + // contains filtered or unexported methods +} +``` + + +## type [RevokeRequest]() + +Request to revoke + +```go +type RevokeRequest struct { + Subject string `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"` + Reason RevocationReason `protobuf:"varint,2,opt,name=reason,proto3,enum=capiscio.v1.RevocationReason" json:"reason,omitempty"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RevokeRequest\) [Descriptor]() + +```go +func (*RevokeRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RevokeRequest.ProtoReflect.Descriptor instead. + + +### func \(\*RevokeRequest\) [GetComment]() + +```go +func (x *RevokeRequest) GetComment() string +``` + + + + +### func \(\*RevokeRequest\) [GetReason]() + +```go +func (x *RevokeRequest) GetReason() RevocationReason +``` + + + + +### func \(\*RevokeRequest\) [GetSubject]() + +```go +func (x *RevokeRequest) GetSubject() string +``` + + + + +### func \(\*RevokeRequest\) [ProtoMessage]() + +```go +func (*RevokeRequest) ProtoMessage() +``` + + + + +### func \(\*RevokeRequest\) [ProtoReflect]() + +```go +func (x *RevokeRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RevokeRequest\) [Reset]() + +```go +func (x *RevokeRequest) Reset() +``` + + + + +### func \(\*RevokeRequest\) [String]() + +```go +func (x *RevokeRequest) String() string +``` + + + + +## type [RevokeResponse]() + +Response for revoke + +```go +type RevokeResponse struct { + Entry *RevocationEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RevokeResponse\) [Descriptor]() + +```go +func (*RevokeResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RevokeResponse.ProtoReflect.Descriptor instead. + + +### func \(\*RevokeResponse\) [GetEntry]() + +```go +func (x *RevokeResponse) GetEntry() *RevocationEntry +``` + + + + +### func \(\*RevokeResponse\) [GetErrorMessage]() + +```go +func (x *RevokeResponse) GetErrorMessage() string +``` + + + + +### func \(\*RevokeResponse\) [ProtoMessage]() + +```go +func (*RevokeResponse) ProtoMessage() +``` + + + + +### func \(\*RevokeResponse\) [ProtoReflect]() + +```go +func (x *RevokeResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RevokeResponse\) [Reset]() + +```go +func (x *RevokeResponse) Reset() +``` + + + + +### func \(\*RevokeResponse\) [String]() + +```go +func (x *RevokeResponse) String() string +``` + + + + +## type [Rule]() + +Individual rule definition + +```go +type Rule struct { + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Category ScoreCategory `protobuf:"varint,4,opt,name=category,proto3,enum=capiscio.v1.ScoreCategory" json:"category,omitempty"` + Severity RuleSeverity `protobuf:"varint,5,opt,name=severity,proto3,enum=capiscio.v1.RuleSeverity" json:"severity,omitempty"` + Weight int32 `protobuf:"varint,6,opt,name=weight,proto3" json:"weight,omitempty"` // Weight for scoring (0-100) + Expression string `protobuf:"bytes,7,opt,name=expression,proto3" json:"expression,omitempty"` // Rule expression/predicate + // contains filtered or unexported fields +} +``` + + +### func \(\*Rule\) [Descriptor]() + +```go +func (*Rule) Descriptor() ([]byte, []int) +``` + +Deprecated: Use Rule.ProtoReflect.Descriptor instead. + + +### func \(\*Rule\) [GetCategory]() + +```go +func (x *Rule) GetCategory() ScoreCategory +``` + + + + +### func \(\*Rule\) [GetDescription]() + +```go +func (x *Rule) GetDescription() string +``` + + + + +### func \(\*Rule\) [GetExpression]() + +```go +func (x *Rule) GetExpression() string +``` + + + + +### func \(\*Rule\) [GetId]() + +```go +func (x *Rule) GetId() string +``` + + + + +### func \(\*Rule\) [GetName]() + +```go +func (x *Rule) GetName() string +``` + + + + +### func \(\*Rule\) [GetSeverity]() + +```go +func (x *Rule) GetSeverity() RuleSeverity +``` + + + + +### func \(\*Rule\) [GetWeight]() + +```go +func (x *Rule) GetWeight() int32 +``` + + + + +### func \(\*Rule\) [ProtoMessage]() + +```go +func (*Rule) ProtoMessage() +``` + + + + +### func \(\*Rule\) [ProtoReflect]() + +```go +func (x *Rule) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*Rule\) [Reset]() + +```go +func (x *Rule) Reset() +``` + + + + +### func \(\*Rule\) [String]() + +```go +func (x *Rule) String() string +``` + + + + +## type [RuleResult]() + +Result of evaluating a single rule + +```go +type RuleResult struct { + RuleId string `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` + Passed bool `protobuf:"varint,2,opt,name=passed,proto3" json:"passed,omitempty"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` + ScoreContribution float64 `protobuf:"fixed64,4,opt,name=score_contribution,json=scoreContribution,proto3" json:"score_contribution,omitempty"` // Points contributed to final score + Details map[string]string `protobuf:"bytes,5,rep,name=details,proto3" json:"details,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RuleResult\) [Descriptor]() + +```go +func (*RuleResult) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RuleResult.ProtoReflect.Descriptor instead. + + +### func \(\*RuleResult\) [GetDetails]() + +```go +func (x *RuleResult) GetDetails() map[string]string +``` + + + + +### func \(\*RuleResult\) [GetMessage]() + +```go +func (x *RuleResult) GetMessage() string +``` + + + + +### func \(\*RuleResult\) [GetPassed]() + +```go +func (x *RuleResult) GetPassed() bool +``` + + + + +### func \(\*RuleResult\) [GetRuleId]() + +```go +func (x *RuleResult) GetRuleId() string +``` + + + + +### func \(\*RuleResult\) [GetScoreContribution]() + +```go +func (x *RuleResult) GetScoreContribution() float64 +``` + + + + +### func \(\*RuleResult\) [ProtoMessage]() + +```go +func (*RuleResult) ProtoMessage() +``` + + + + +### func \(\*RuleResult\) [ProtoReflect]() + +```go +func (x *RuleResult) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RuleResult\) [Reset]() + +```go +func (x *RuleResult) Reset() +``` + + + + +### func \(\*RuleResult\) [String]() + +```go +func (x *RuleResult) String() string +``` + + + + +## type [RuleSet]() + +Rule set containing multiple rules + +```go +type RuleSet struct { + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + Rules []*Rule `protobuf:"bytes,5,rep,name=rules,proto3" json:"rules,omitempty"` + Metadata map[string]string `protobuf:"bytes,6,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // contains filtered or unexported fields +} +``` + + +### func \(\*RuleSet\) [Descriptor]() + +```go +func (*RuleSet) Descriptor() ([]byte, []int) +``` + +Deprecated: Use RuleSet.ProtoReflect.Descriptor instead. + + +### func \(\*RuleSet\) [GetDescription]() + +```go +func (x *RuleSet) GetDescription() string +``` + + + + +### func \(\*RuleSet\) [GetId]() + +```go +func (x *RuleSet) GetId() string +``` + + + + +### func \(\*RuleSet\) [GetMetadata]() + +```go +func (x *RuleSet) GetMetadata() map[string]string +``` + + + + +### func \(\*RuleSet\) [GetName]() + +```go +func (x *RuleSet) GetName() string +``` + + + + +### func \(\*RuleSet\) [GetRules]() + +```go +func (x *RuleSet) GetRules() []*Rule +``` + + + + +### func \(\*RuleSet\) [GetVersion]() + +```go +func (x *RuleSet) GetVersion() string +``` + + + + +### func \(\*RuleSet\) [ProtoMessage]() + +```go +func (*RuleSet) ProtoMessage() +``` + + + + +### func \(\*RuleSet\) [ProtoReflect]() + +```go +func (x *RuleSet) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*RuleSet\) [Reset]() + +```go +func (x *RuleSet) Reset() +``` + + + + +### func \(\*RuleSet\) [String]() + +```go +func (x *RuleSet) String() string +``` + + + + +## type [RuleSeverity]() + +Rule severity for scoring + +```go +type RuleSeverity int32 +``` + + + +```go +const ( + RuleSeverity_RULE_SEVERITY_UNSPECIFIED RuleSeverity = 0 + RuleSeverity_RULE_SEVERITY_INFO RuleSeverity = 1 + RuleSeverity_RULE_SEVERITY_WARNING RuleSeverity = 2 + RuleSeverity_RULE_SEVERITY_ERROR RuleSeverity = 3 + RuleSeverity_RULE_SEVERITY_CRITICAL RuleSeverity = 4 +) +``` + + +### func \(RuleSeverity\) [Descriptor]() + +```go +func (RuleSeverity) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(RuleSeverity\) [Enum]() + +```go +func (x RuleSeverity) Enum() *RuleSeverity +``` + + + + +### func \(RuleSeverity\) [EnumDescriptor]() + +```go +func (RuleSeverity) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use RuleSeverity.Descriptor instead. + + +### func \(RuleSeverity\) [Number]() + +```go +func (x RuleSeverity) Number() protoreflect.EnumNumber +``` + + + + +### func \(RuleSeverity\) [String]() + +```go +func (x RuleSeverity) String() string +``` + + + + +### func \(RuleSeverity\) [Type]() + +```go +func (RuleSeverity) Type() protoreflect.EnumType +``` + + + + +## type [ScoreAgentCardRequest]() + +Request to score an agent card + +```go +type ScoreAgentCardRequest struct { + AgentCardJson string `protobuf:"bytes,1,opt,name=agent_card_json,json=agentCardJson,proto3" json:"agent_card_json,omitempty"` // JSON of agent card + RuleSetId string `protobuf:"bytes,2,opt,name=rule_set_id,json=ruleSetId,proto3" json:"rule_set_id,omitempty"` // Optional: specific rule set + Categories []ScoreCategory `protobuf:"varint,3,rep,packed,name=categories,proto3,enum=capiscio.v1.ScoreCategory" json:"categories,omitempty"` // Optional: limit to categories + // contains filtered or unexported fields +} +``` + + +### func \(\*ScoreAgentCardRequest\) [Descriptor]() + +```go +func (*ScoreAgentCardRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ScoreAgentCardRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ScoreAgentCardRequest\) [GetAgentCardJson]() + +```go +func (x *ScoreAgentCardRequest) GetAgentCardJson() string +``` + + + + +### func \(\*ScoreAgentCardRequest\) [GetCategories]() + +```go +func (x *ScoreAgentCardRequest) GetCategories() []ScoreCategory +``` + + + + +### func \(\*ScoreAgentCardRequest\) [GetRuleSetId]() + +```go +func (x *ScoreAgentCardRequest) GetRuleSetId() string +``` + + + + +### func \(\*ScoreAgentCardRequest\) [ProtoMessage]() + +```go +func (*ScoreAgentCardRequest) ProtoMessage() +``` + + + + +### func \(\*ScoreAgentCardRequest\) [ProtoReflect]() + +```go +func (x *ScoreAgentCardRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ScoreAgentCardRequest\) [Reset]() + +```go +func (x *ScoreAgentCardRequest) Reset() +``` + + + + +### func \(\*ScoreAgentCardRequest\) [String]() + +```go +func (x *ScoreAgentCardRequest) String() string +``` + + + + +## type [ScoreAgentCardResponse]() + +Response with score + +```go +type ScoreAgentCardResponse struct { + Result *ScoringResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ScoreAgentCardResponse\) [Descriptor]() + +```go +func (*ScoreAgentCardResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ScoreAgentCardResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ScoreAgentCardResponse\) [GetErrorMessage]() + +```go +func (x *ScoreAgentCardResponse) GetErrorMessage() string +``` + + + + +### func \(\*ScoreAgentCardResponse\) [GetResult]() + +```go +func (x *ScoreAgentCardResponse) GetResult() *ScoringResult +``` + + + + +### func \(\*ScoreAgentCardResponse\) [ProtoMessage]() + +```go +func (*ScoreAgentCardResponse) ProtoMessage() +``` + + + + +### func \(\*ScoreAgentCardResponse\) [ProtoReflect]() + +```go +func (x *ScoreAgentCardResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ScoreAgentCardResponse\) [Reset]() + +```go +func (x *ScoreAgentCardResponse) Reset() +``` + + + + +### func \(\*ScoreAgentCardResponse\) [String]() + +```go +func (x *ScoreAgentCardResponse) String() string +``` + + + + +## type [ScoreCategory]() + +Score categories + +```go +type ScoreCategory int32 +``` + + + +```go +const ( + ScoreCategory_SCORE_CATEGORY_UNSPECIFIED ScoreCategory = 0 + ScoreCategory_SCORE_CATEGORY_IDENTITY ScoreCategory = 1 + ScoreCategory_SCORE_CATEGORY_CAPABILITIES ScoreCategory = 2 + ScoreCategory_SCORE_CATEGORY_SECURITY ScoreCategory = 3 + ScoreCategory_SCORE_CATEGORY_COMPLIANCE ScoreCategory = 4 + ScoreCategory_SCORE_CATEGORY_TRANSPARENCY ScoreCategory = 5 +) +``` + + +### func \(ScoreCategory\) [Descriptor]() + +```go +func (ScoreCategory) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(ScoreCategory\) [Enum]() + +```go +func (x ScoreCategory) Enum() *ScoreCategory +``` + + + + +### func \(ScoreCategory\) [EnumDescriptor]() + +```go +func (ScoreCategory) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use ScoreCategory.Descriptor instead. + + +### func \(ScoreCategory\) [Number]() + +```go +func (x ScoreCategory) Number() protoreflect.EnumNumber +``` + + + + +### func \(ScoreCategory\) [String]() + +```go +func (x ScoreCategory) String() string +``` + + + + +### func \(ScoreCategory\) [Type]() + +```go +func (ScoreCategory) Type() protoreflect.EnumType +``` + + + + +## type [ScoringResult]() + +Full scoring result + +```go +type ScoringResult struct { + OverallScore float64 `protobuf:"fixed64,1,opt,name=overall_score,json=overallScore,proto3" json:"overall_score,omitempty"` // 0.0 to 1.0 + Rating Rating `protobuf:"varint,2,opt,name=rating,proto3,enum=capiscio.v1.Rating" json:"rating,omitempty"` // Derived rating + Categories []*CategoryScore `protobuf:"bytes,3,rep,name=categories,proto3" json:"categories,omitempty"` + RuleResults []*RuleResult `protobuf:"bytes,4,rep,name=rule_results,json=ruleResults,proto3" json:"rule_results,omitempty"` + Validation *ValidationResult `protobuf:"bytes,5,opt,name=validation,proto3" json:"validation,omitempty"` // Any validation issues found + ScoredAt *Timestamp `protobuf:"bytes,6,opt,name=scored_at,json=scoredAt,proto3" json:"scored_at,omitempty"` + RuleSetId string `protobuf:"bytes,7,opt,name=rule_set_id,json=ruleSetId,proto3" json:"rule_set_id,omitempty"` + RuleSetVersion string `protobuf:"bytes,8,opt,name=rule_set_version,json=ruleSetVersion,proto3" json:"rule_set_version,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ScoringResult\) [Descriptor]() + +```go +func (*ScoringResult) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ScoringResult.ProtoReflect.Descriptor instead. + + +### func \(\*ScoringResult\) [GetCategories]() + +```go +func (x *ScoringResult) GetCategories() []*CategoryScore +``` + + + + +### func \(\*ScoringResult\) [GetOverallScore]() + +```go +func (x *ScoringResult) GetOverallScore() float64 +``` + + + + +### func \(\*ScoringResult\) [GetRating]() + +```go +func (x *ScoringResult) GetRating() Rating +``` + + + + +### func \(\*ScoringResult\) [GetRuleResults]() + +```go +func (x *ScoringResult) GetRuleResults() []*RuleResult +``` + + + + +### func \(\*ScoringResult\) [GetRuleSetId]() + +```go +func (x *ScoringResult) GetRuleSetId() string +``` + + + + +### func \(\*ScoringResult\) [GetRuleSetVersion]() + +```go +func (x *ScoringResult) GetRuleSetVersion() string +``` + + + + +### func \(\*ScoringResult\) [GetScoredAt]() + +```go +func (x *ScoringResult) GetScoredAt() *Timestamp +``` + + + + +### func \(\*ScoringResult\) [GetValidation]() + +```go +func (x *ScoringResult) GetValidation() *ValidationResult +``` + + + + +### func \(\*ScoringResult\) [ProtoMessage]() + +```go +func (*ScoringResult) ProtoMessage() +``` + + + + +### func \(\*ScoringResult\) [ProtoReflect]() + +```go +func (x *ScoringResult) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ScoringResult\) [Reset]() + +```go +func (x *ScoringResult) Reset() +``` + + + + +### func \(\*ScoringResult\) [String]() + +```go +func (x *ScoringResult) String() string +``` + + + + +## type [ScoringServiceClient]() + +ScoringServiceClient is the client API for ScoringService service. + +For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. + +ScoringService evaluates agent cards and generates trust scores + +```go +type ScoringServiceClient interface { + // Validate an agent card and generate a score + ScoreAgentCard(ctx context.Context, in *ScoreAgentCardRequest, opts ...grpc.CallOption) (*ScoreAgentCardResponse, error) + // Validate a single rule + ValidateRule(ctx context.Context, in *ValidateRuleRequest, opts ...grpc.CallOption) (*ValidateRuleResponse, error) + // Get available rule sets + ListRuleSets(ctx context.Context, in *ListRuleSetsRequest, opts ...grpc.CallOption) (*ListRuleSetsResponse, error) + // Get rule set details + GetRuleSet(ctx context.Context, in *GetRuleSetRequest, opts ...grpc.CallOption) (*GetRuleSetResponse, error) + // Calculate aggregate score from multiple validations + AggregateScores(ctx context.Context, in *AggregateScoresRequest, opts ...grpc.CallOption) (*AggregateScoresResponse, error) +} +``` + + +### func [NewScoringServiceClient]() + +```go +func NewScoringServiceClient(cc grpc.ClientConnInterface) ScoringServiceClient +``` + + + + +## type [ScoringServiceServer]() + +ScoringServiceServer is the server API for ScoringService service. All implementations must embed UnimplementedScoringServiceServer for forward compatibility. + +ScoringService evaluates agent cards and generates trust scores + +```go +type ScoringServiceServer interface { + // Validate an agent card and generate a score + ScoreAgentCard(context.Context, *ScoreAgentCardRequest) (*ScoreAgentCardResponse, error) + // Validate a single rule + ValidateRule(context.Context, *ValidateRuleRequest) (*ValidateRuleResponse, error) + // Get available rule sets + ListRuleSets(context.Context, *ListRuleSetsRequest) (*ListRuleSetsResponse, error) + // Get rule set details + GetRuleSet(context.Context, *GetRuleSetRequest) (*GetRuleSetResponse, error) + // Calculate aggregate score from multiple validations + AggregateScores(context.Context, *AggregateScoresRequest) (*AggregateScoresResponse, error) + // contains filtered or unexported methods +} +``` + + +## type [SearchAgentsRequest]() + +Search request + +```go +type SearchAgentsRequest struct { + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` // Free text query + Capabilities []string `protobuf:"bytes,2,rep,name=capabilities,proto3" json:"capabilities,omitempty"` // Filter by capabilities + Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"` // Filter by tags + Operator SearchOperator `protobuf:"varint,4,opt,name=operator,proto3,enum=capiscio.v1.SearchOperator" json:"operator,omitempty"` // How to combine filters + MinRating Rating `protobuf:"varint,5,opt,name=min_rating,json=minRating,proto3,enum=capiscio.v1.Rating" json:"min_rating,omitempty"` // Minimum rating filter + StatusFilter AgentStatus `protobuf:"varint,6,opt,name=status_filter,json=statusFilter,proto3,enum=capiscio.v1.AgentStatus" json:"status_filter,omitempty"` // Status filter + Limit int32 `protobuf:"varint,7,opt,name=limit,proto3" json:"limit,omitempty"` + Cursor string `protobuf:"bytes,8,opt,name=cursor,proto3" json:"cursor,omitempty"` + SortBy string `protobuf:"bytes,9,opt,name=sort_by,json=sortBy,proto3" json:"sort_by,omitempty"` // Field to sort by + SortDescending bool `protobuf:"varint,10,opt,name=sort_descending,json=sortDescending,proto3" json:"sort_descending,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*SearchAgentsRequest\) [Descriptor]() + +```go +func (*SearchAgentsRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use SearchAgentsRequest.ProtoReflect.Descriptor instead. + + +### func \(\*SearchAgentsRequest\) [GetCapabilities]() + +```go +func (x *SearchAgentsRequest) GetCapabilities() []string +``` + + + + +### func \(\*SearchAgentsRequest\) [GetCursor]() + +```go +func (x *SearchAgentsRequest) GetCursor() string +``` + + + + +### func \(\*SearchAgentsRequest\) [GetLimit]() + +```go +func (x *SearchAgentsRequest) GetLimit() int32 +``` + + + + +### func \(\*SearchAgentsRequest\) [GetMinRating]() + +```go +func (x *SearchAgentsRequest) GetMinRating() Rating +``` + + + + +### func \(\*SearchAgentsRequest\) [GetOperator]() + +```go +func (x *SearchAgentsRequest) GetOperator() SearchOperator +``` + + + + +### func \(\*SearchAgentsRequest\) [GetQuery]() + +```go +func (x *SearchAgentsRequest) GetQuery() string +``` + + + + +### func \(\*SearchAgentsRequest\) [GetSortBy]() + +```go +func (x *SearchAgentsRequest) GetSortBy() string +``` + + + + +### func \(\*SearchAgentsRequest\) [GetSortDescending]() + +```go +func (x *SearchAgentsRequest) GetSortDescending() bool +``` + + + + +### func \(\*SearchAgentsRequest\) [GetStatusFilter]() + +```go +func (x *SearchAgentsRequest) GetStatusFilter() AgentStatus +``` + + + + +### func \(\*SearchAgentsRequest\) [GetTags]() + +```go +func (x *SearchAgentsRequest) GetTags() []string +``` + + + + +### func \(\*SearchAgentsRequest\) [ProtoMessage]() + +```go +func (*SearchAgentsRequest) ProtoMessage() +``` + + + + +### func \(\*SearchAgentsRequest\) [ProtoReflect]() + +```go +func (x *SearchAgentsRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*SearchAgentsRequest\) [Reset]() + +```go +func (x *SearchAgentsRequest) Reset() +``` + + + + +### func \(\*SearchAgentsRequest\) [String]() + +```go +func (x *SearchAgentsRequest) String() string +``` + + + + +## type [SearchAgentsResponse]() + +Search response + +```go +type SearchAgentsResponse struct { + Agents []*RegisteredAgent `protobuf:"bytes,1,rep,name=agents,proto3" json:"agents,omitempty"` + NextCursor string `protobuf:"bytes,2,opt,name=next_cursor,json=nextCursor,proto3" json:"next_cursor,omitempty"` + TotalCount int32 `protobuf:"varint,3,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*SearchAgentsResponse\) [Descriptor]() + +```go +func (*SearchAgentsResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use SearchAgentsResponse.ProtoReflect.Descriptor instead. + + +### func \(\*SearchAgentsResponse\) [GetAgents]() + +```go +func (x *SearchAgentsResponse) GetAgents() []*RegisteredAgent +``` + + + + +### func \(\*SearchAgentsResponse\) [GetNextCursor]() + +```go +func (x *SearchAgentsResponse) GetNextCursor() string +``` + + + + +### func \(\*SearchAgentsResponse\) [GetTotalCount]() + +```go +func (x *SearchAgentsResponse) GetTotalCount() int32 +``` + + + + +### func \(\*SearchAgentsResponse\) [ProtoMessage]() + +```go +func (*SearchAgentsResponse) ProtoMessage() +``` + + + + +### func \(\*SearchAgentsResponse\) [ProtoReflect]() + +```go +func (x *SearchAgentsResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*SearchAgentsResponse\) [Reset]() + +```go +func (x *SearchAgentsResponse) Reset() +``` + + + + +### func \(\*SearchAgentsResponse\) [String]() + +```go +func (x *SearchAgentsResponse) String() string +``` + + + + +## type [SearchOperator]() + +Search operator + +```go +type SearchOperator int32 +``` + + + +```go +const ( + SearchOperator_SEARCH_OPERATOR_UNSPECIFIED SearchOperator = 0 + SearchOperator_SEARCH_OPERATOR_AND SearchOperator = 1 + SearchOperator_SEARCH_OPERATOR_OR SearchOperator = 2 +) +``` + + +### func \(SearchOperator\) [Descriptor]() + +```go +func (SearchOperator) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(SearchOperator\) [Enum]() + +```go +func (x SearchOperator) Enum() *SearchOperator +``` + + + + +### func \(SearchOperator\) [EnumDescriptor]() + +```go +func (SearchOperator) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use SearchOperator.Descriptor instead. + + +### func \(SearchOperator\) [Number]() + +```go +func (x SearchOperator) Number() protoreflect.EnumNumber +``` + + + + +### func \(SearchOperator\) [String]() + +```go +func (x SearchOperator) String() string +``` + + + + +### func \(SearchOperator\) [Type]() + +```go +func (SearchOperator) Type() protoreflect.EnumType +``` + + + + +## type [SignAttachedRequest]() + +Request to sign with attached payload + +```go +type SignAttachedRequest struct { + Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` + KeyId string `protobuf:"bytes,2,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` + Format SignatureFormat `protobuf:"varint,3,opt,name=format,proto3,enum=capiscio.v1.SignatureFormat" json:"format,omitempty"` + Headers map[string]string `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + DetachPayload bool `protobuf:"varint,5,opt,name=detach_payload,json=detachPayload,proto3" json:"detach_payload,omitempty"` // Whether to detach payload from JWS + // contains filtered or unexported fields +} +``` + + +### func \(\*SignAttachedRequest\) [Descriptor]() + +```go +func (*SignAttachedRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use SignAttachedRequest.ProtoReflect.Descriptor instead. + + +### func \(\*SignAttachedRequest\) [GetDetachPayload]() + +```go +func (x *SignAttachedRequest) GetDetachPayload() bool +``` + + + + +### func \(\*SignAttachedRequest\) [GetFormat]() + +```go +func (x *SignAttachedRequest) GetFormat() SignatureFormat +``` + + + + +### func \(\*SignAttachedRequest\) [GetHeaders]() + +```go +func (x *SignAttachedRequest) GetHeaders() map[string]string +``` + + + + +### func \(\*SignAttachedRequest\) [GetKeyId]() + +```go +func (x *SignAttachedRequest) GetKeyId() string +``` + + + + +### func \(\*SignAttachedRequest\) [GetPayload]() + +```go +func (x *SignAttachedRequest) GetPayload() []byte +``` + + + + +### func \(\*SignAttachedRequest\) [ProtoMessage]() + +```go +func (*SignAttachedRequest) ProtoMessage() +``` + + + + +### func \(\*SignAttachedRequest\) [ProtoReflect]() + +```go +func (x *SignAttachedRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*SignAttachedRequest\) [Reset]() + +```go +func (x *SignAttachedRequest) Reset() +``` + + + + +### func \(\*SignAttachedRequest\) [String]() + +```go +func (x *SignAttachedRequest) String() string +``` + + + + +## type [SignAttachedResponse]() + +Response with attached signature + +```go +type SignAttachedResponse struct { + Jws string `protobuf:"bytes,1,opt,name=jws,proto3" json:"jws,omitempty"` // Complete JWS + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*SignAttachedResponse\) [Descriptor]() + +```go +func (*SignAttachedResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use SignAttachedResponse.ProtoReflect.Descriptor instead. + + +### func \(\*SignAttachedResponse\) [GetErrorMessage]() + +```go +func (x *SignAttachedResponse) GetErrorMessage() string +``` + + + + +### func \(\*SignAttachedResponse\) [GetJws]() + +```go +func (x *SignAttachedResponse) GetJws() string +``` + + + + +### func \(\*SignAttachedResponse\) [ProtoMessage]() + +```go +func (*SignAttachedResponse) ProtoMessage() +``` + + + + +### func \(\*SignAttachedResponse\) [ProtoReflect]() + +```go +func (x *SignAttachedResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*SignAttachedResponse\) [Reset]() + +```go +func (x *SignAttachedResponse) Reset() +``` + + + + +### func \(\*SignAttachedResponse\) [String]() + +```go +func (x *SignAttachedResponse) String() string +``` + + + + +## type [SignBadgeRequest]() + +Request to sign a badge + +```go +type SignBadgeRequest struct { + Claims *BadgeClaims `protobuf:"bytes,1,opt,name=claims,proto3" json:"claims,omitempty"` + // Private key in JWK format (JSON string) + PrivateKeyJwk string `protobuf:"bytes,2,opt,name=private_key_jwk,json=privateKeyJwk,proto3" json:"private_key_jwk,omitempty"` + // Key ID for the signing key + KeyId string `protobuf:"bytes,3,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*SignBadgeRequest\) [Descriptor]() + +```go +func (*SignBadgeRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use SignBadgeRequest.ProtoReflect.Descriptor instead. + + +### func \(\*SignBadgeRequest\) [GetClaims]() + +```go +func (x *SignBadgeRequest) GetClaims() *BadgeClaims +``` + + + + +### func \(\*SignBadgeRequest\) [GetKeyId]() + +```go +func (x *SignBadgeRequest) GetKeyId() string +``` + + + + +### func \(\*SignBadgeRequest\) [GetPrivateKeyJwk]() + +```go +func (x *SignBadgeRequest) GetPrivateKeyJwk() string +``` + + + + +### func \(\*SignBadgeRequest\) [ProtoMessage]() + +```go +func (*SignBadgeRequest) ProtoMessage() +``` + + + + +### func \(\*SignBadgeRequest\) [ProtoReflect]() + +```go +func (x *SignBadgeRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*SignBadgeRequest\) [Reset]() + +```go +func (x *SignBadgeRequest) Reset() +``` + + + + +### func \(\*SignBadgeRequest\) [String]() + +```go +func (x *SignBadgeRequest) String() string +``` + + + + +## type [SignBadgeResponse]() + +Response with signed badge + +```go +type SignBadgeResponse struct { + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` // Signed JWT token + Claims *BadgeClaims `protobuf:"bytes,2,opt,name=claims,proto3" json:"claims,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*SignBadgeResponse\) [Descriptor]() + +```go +func (*SignBadgeResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use SignBadgeResponse.ProtoReflect.Descriptor instead. + + +### func \(\*SignBadgeResponse\) [GetClaims]() + +```go +func (x *SignBadgeResponse) GetClaims() *BadgeClaims +``` + + + + +### func \(\*SignBadgeResponse\) [GetToken]() + +```go +func (x *SignBadgeResponse) GetToken() string +``` + + + + +### func \(\*SignBadgeResponse\) [ProtoMessage]() + +```go +func (*SignBadgeResponse) ProtoMessage() +``` + + + + +### func \(\*SignBadgeResponse\) [ProtoReflect]() + +```go +func (x *SignBadgeResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*SignBadgeResponse\) [Reset]() + +```go +func (x *SignBadgeResponse) Reset() +``` + + + + +### func \(\*SignBadgeResponse\) [String]() + +```go +func (x *SignBadgeResponse) String() string +``` + + + + +## type [SignRequest]() + +Request to sign + +```go +type SignRequest struct { + Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` + KeyId string `protobuf:"bytes,2,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` // Key to use for signing + Format SignatureFormat `protobuf:"varint,3,opt,name=format,proto3,enum=capiscio.v1.SignatureFormat" json:"format,omitempty"` + Headers map[string]string `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Additional JWS headers + // contains filtered or unexported fields +} +``` + + +### func \(\*SignRequest\) [Descriptor]() + +```go +func (*SignRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use SignRequest.ProtoReflect.Descriptor instead. + + +### func \(\*SignRequest\) [GetFormat]() + +```go +func (x *SignRequest) GetFormat() SignatureFormat +``` + + + + +### func \(\*SignRequest\) [GetHeaders]() + +```go +func (x *SignRequest) GetHeaders() map[string]string +``` + + + + +### func \(\*SignRequest\) [GetKeyId]() + +```go +func (x *SignRequest) GetKeyId() string +``` + + + + +### func \(\*SignRequest\) [GetPayload]() + +```go +func (x *SignRequest) GetPayload() []byte +``` + + + + +### func \(\*SignRequest\) [ProtoMessage]() + +```go +func (*SignRequest) ProtoMessage() +``` + + + + +### func \(\*SignRequest\) [ProtoReflect]() + +```go +func (x *SignRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*SignRequest\) [Reset]() + +```go +func (x *SignRequest) Reset() +``` + + + + +### func \(\*SignRequest\) [String]() + +```go +func (x *SignRequest) String() string +``` + + + + +## type [SignResponse]() + +Response with signature + +```go +type SignResponse struct { + Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` + SignatureString string `protobuf:"bytes,2,opt,name=signature_string,json=signatureString,proto3" json:"signature_string,omitempty"` // String form if applicable + ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*SignResponse\) [Descriptor]() + +```go +func (*SignResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use SignResponse.ProtoReflect.Descriptor instead. + + +### func \(\*SignResponse\) [GetErrorMessage]() + +```go +func (x *SignResponse) GetErrorMessage() string +``` + + + + +### func \(\*SignResponse\) [GetSignature]() + +```go +func (x *SignResponse) GetSignature() []byte +``` + + + + +### func \(\*SignResponse\) [GetSignatureString]() + +```go +func (x *SignResponse) GetSignatureString() string +``` + + + + +### func \(\*SignResponse\) [ProtoMessage]() + +```go +func (*SignResponse) ProtoMessage() +``` + + + + +### func \(\*SignResponse\) [ProtoReflect]() + +```go +func (x *SignResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*SignResponse\) [Reset]() + +```go +func (x *SignResponse) Reset() +``` + + + + +### func \(\*SignResponse\) [String]() + +```go +func (x *SignResponse) String() string +``` + + + + +## type [SignatureFormat]() + +Signature format + +```go +type SignatureFormat int32 +``` + + + +```go +const ( + SignatureFormat_SIGNATURE_FORMAT_UNSPECIFIED SignatureFormat = 0 + SignatureFormat_SIGNATURE_FORMAT_JWS_COMPACT SignatureFormat = 1 + SignatureFormat_SIGNATURE_FORMAT_JWS_JSON SignatureFormat = 2 + SignatureFormat_SIGNATURE_FORMAT_RAW SignatureFormat = 3 +) +``` + + +### func \(SignatureFormat\) [Descriptor]() + +```go +func (SignatureFormat) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(SignatureFormat\) [Enum]() + +```go +func (x SignatureFormat) Enum() *SignatureFormat +``` + + + + +### func \(SignatureFormat\) [EnumDescriptor]() + +```go +func (SignatureFormat) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use SignatureFormat.Descriptor instead. + + +### func \(SignatureFormat\) [Number]() + +```go +func (x SignatureFormat) Number() protoreflect.EnumNumber +``` + + + + +### func \(SignatureFormat\) [String]() + +```go +func (x SignatureFormat) String() string +``` + + + + +### func \(SignatureFormat\) [Type]() + +```go +func (SignatureFormat) Type() protoreflect.EnumType +``` + + + + +## type [SimpleGuardServiceClient]() + +SimpleGuardServiceClient is the client API for SimpleGuardService service. + +For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. + +SimpleGuardService provides simplified signing and verification + +```go +type SimpleGuardServiceClient interface { + // Sign a message + Sign(ctx context.Context, in *SignRequest, opts ...grpc.CallOption) (*SignResponse, error) + // Verify a signed message + Verify(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*VerifyResponse, error) + // Sign with attached payload (creates JWS) + SignAttached(ctx context.Context, in *SignAttachedRequest, opts ...grpc.CallOption) (*SignAttachedResponse, error) + // Verify with attached payload + VerifyAttached(ctx context.Context, in *VerifyAttachedRequest, opts ...grpc.CallOption) (*VerifyAttachedResponse, error) + // Generate a new key pair + GenerateKeyPair(ctx context.Context, in *GenerateKeyPairRequest, opts ...grpc.CallOption) (*GenerateKeyPairResponse, error) + // Load key from file + LoadKey(ctx context.Context, in *LoadKeyRequest, opts ...grpc.CallOption) (*LoadKeyResponse, error) + // Export key to file + ExportKey(ctx context.Context, in *ExportKeyRequest, opts ...grpc.CallOption) (*ExportKeyResponse, error) + // Get key info + GetKeyInfo(ctx context.Context, in *GetKeyInfoRequest, opts ...grpc.CallOption) (*GetKeyInfoResponse, error) + // Initialize agent identity (Let's Encrypt style one-call setup) + // Generates key pair, derives DID, registers with server, creates agent card + Init(ctx context.Context, in *InitRequest, opts ...grpc.CallOption) (*InitResponse, error) +} +``` + + +### func [NewSimpleGuardServiceClient]() + +```go +func NewSimpleGuardServiceClient(cc grpc.ClientConnInterface) SimpleGuardServiceClient +``` + + + + +## type [SimpleGuardServiceServer]() + +SimpleGuardServiceServer is the server API for SimpleGuardService service. All implementations must embed UnimplementedSimpleGuardServiceServer for forward compatibility. + +SimpleGuardService provides simplified signing and verification + +```go +type SimpleGuardServiceServer interface { + // Sign a message + Sign(context.Context, *SignRequest) (*SignResponse, error) + // Verify a signed message + Verify(context.Context, *VerifyRequest) (*VerifyResponse, error) + // Sign with attached payload (creates JWS) + SignAttached(context.Context, *SignAttachedRequest) (*SignAttachedResponse, error) + // Verify with attached payload + VerifyAttached(context.Context, *VerifyAttachedRequest) (*VerifyAttachedResponse, error) + // Generate a new key pair + GenerateKeyPair(context.Context, *GenerateKeyPairRequest) (*GenerateKeyPairResponse, error) + // Load key from file + LoadKey(context.Context, *LoadKeyRequest) (*LoadKeyResponse, error) + // Export key to file + ExportKey(context.Context, *ExportKeyRequest) (*ExportKeyResponse, error) + // Get key info + GetKeyInfo(context.Context, *GetKeyInfoRequest) (*GetKeyInfoResponse, error) + // Initialize agent identity (Let's Encrypt style one-call setup) + // Generates key pair, derives DID, registers with server, creates agent card + Init(context.Context, *InitRequest) (*InitResponse, error) + // contains filtered or unexported methods +} +``` + + +## type [StartKeeperRequest]() + +Request to start a badge keeper daemon + +```go +type StartKeeperRequest struct { + + // Mode: CA or self-signed + Mode KeeperMode `protobuf:"varint,1,opt,name=mode,proto3,enum=capiscio.v1.KeeperMode" json:"mode,omitempty"` + // Agent ID (required for CA mode) + AgentId string `protobuf:"bytes,2,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + // CA URL (default: https://registry.capisc.io) + CaUrl string `protobuf:"bytes,3,opt,name=ca_url,json=caUrl,proto3" json:"ca_url,omitempty"` + // API key for CA authentication (required for CA mode) + ApiKey string `protobuf:"bytes,4,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"` + // Output file path for the badge + OutputFile string `protobuf:"bytes,5,opt,name=output_file,json=outputFile,proto3" json:"output_file,omitempty"` + // Badge TTL in seconds (default: 300) + TtlSeconds int32 `protobuf:"varint,6,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` + // Time before expiry to renew, in seconds (default: 60) + RenewBeforeSeconds int32 `protobuf:"varint,7,opt,name=renew_before_seconds,json=renewBeforeSeconds,proto3" json:"renew_before_seconds,omitempty"` + // Check interval in seconds (default: 30) + CheckIntervalSeconds int32 `protobuf:"varint,8,opt,name=check_interval_seconds,json=checkIntervalSeconds,proto3" json:"check_interval_seconds,omitempty"` + // Private key path (required for self-sign mode, JWK file) + PrivateKeyPath string `protobuf:"bytes,9,opt,name=private_key_path,json=privateKeyPath,proto3" json:"private_key_path,omitempty"` + // Domain for the badge + Domain string `protobuf:"bytes,10,opt,name=domain,proto3" json:"domain,omitempty"` + // Trust level (for CA mode, 1-4; self-sign always 0) + TrustLevel TrustLevel `protobuf:"varint,11,opt,name=trust_level,json=trustLevel,proto3,enum=capiscio.v1.TrustLevel" json:"trust_level,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*StartKeeperRequest\) [Descriptor]() + +```go +func (*StartKeeperRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use StartKeeperRequest.ProtoReflect.Descriptor instead. + + +### func \(\*StartKeeperRequest\) [GetAgentId]() + +```go +func (x *StartKeeperRequest) GetAgentId() string +``` + + + + +### func \(\*StartKeeperRequest\) [GetApiKey]() + +```go +func (x *StartKeeperRequest) GetApiKey() string +``` + + + + +### func \(\*StartKeeperRequest\) [GetCaUrl]() + +```go +func (x *StartKeeperRequest) GetCaUrl() string +``` + + + + +### func \(\*StartKeeperRequest\) [GetCheckIntervalSeconds]() + +```go +func (x *StartKeeperRequest) GetCheckIntervalSeconds() int32 +``` + + + + +### func \(\*StartKeeperRequest\) [GetDomain]() + +```go +func (x *StartKeeperRequest) GetDomain() string +``` + + + + +### func \(\*StartKeeperRequest\) [GetMode]() + +```go +func (x *StartKeeperRequest) GetMode() KeeperMode +``` + + + + +### func \(\*StartKeeperRequest\) [GetOutputFile]() + +```go +func (x *StartKeeperRequest) GetOutputFile() string +``` + + + + +### func \(\*StartKeeperRequest\) [GetPrivateKeyPath]() + +```go +func (x *StartKeeperRequest) GetPrivateKeyPath() string +``` + + + + +### func \(\*StartKeeperRequest\) [GetRenewBeforeSeconds]() + +```go +func (x *StartKeeperRequest) GetRenewBeforeSeconds() int32 +``` + + + + +### func \(\*StartKeeperRequest\) [GetTrustLevel]() + +```go +func (x *StartKeeperRequest) GetTrustLevel() TrustLevel +``` + + + + +### func \(\*StartKeeperRequest\) [GetTtlSeconds]() + +```go +func (x *StartKeeperRequest) GetTtlSeconds() int32 +``` + + + + +### func \(\*StartKeeperRequest\) [ProtoMessage]() + +```go +func (*StartKeeperRequest) ProtoMessage() +``` + + + + +### func \(\*StartKeeperRequest\) [ProtoReflect]() + +```go +func (x *StartKeeperRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*StartKeeperRequest\) [Reset]() + +```go +func (x *StartKeeperRequest) Reset() +``` + + + + +### func \(\*StartKeeperRequest\) [String]() + +```go +func (x *StartKeeperRequest) String() string +``` + + + + +## type [Timestamp]() + +Timestamp in RFC3339 format + +```go +type Timestamp struct { + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // RFC3339 formatted timestamp + // contains filtered or unexported fields +} +``` + + +### func \(\*Timestamp\) [Descriptor]() + +```go +func (*Timestamp) Descriptor() ([]byte, []int) +``` + +Deprecated: Use Timestamp.ProtoReflect.Descriptor instead. + + +### func \(\*Timestamp\) [GetValue]() + +```go +func (x *Timestamp) GetValue() string +``` + + + + +### func \(\*Timestamp\) [ProtoMessage]() + +```go +func (*Timestamp) ProtoMessage() +``` + + + + +### func \(\*Timestamp\) [ProtoReflect]() + +```go +func (x *Timestamp) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*Timestamp\) [Reset]() + +```go +func (x *Timestamp) Reset() +``` + + + + +### func \(\*Timestamp\) [String]() + +```go +func (x *Timestamp) String() string +``` + + + + +## type [TrustLevel]() + +Trust level for badges \(RFC\-002 §5\) NOTE: Proto enum ordinals \(1\-5\) map to RFC\-002 level strings \("0"\-"4"\) The badge JWT \`vc.credentialSubject.level\` uses the RFC string values + +```go +type TrustLevel int32 +``` + + + +```go +const ( + TrustLevel_TRUST_LEVEL_UNSPECIFIED TrustLevel = 0 + TrustLevel_TRUST_LEVEL_SELF_SIGNED TrustLevel = 1 // RFC-002 Level "0": Self-Signed (SS) - did:key, iss == sub + TrustLevel_TRUST_LEVEL_DV TrustLevel = 2 // RFC-002 Level "1": Registered (REG) - account registration + TrustLevel_TRUST_LEVEL_OV TrustLevel = 3 // RFC-002 Level "2": Domain Validated (DV) - DNS/HTTP proof + TrustLevel_TRUST_LEVEL_EV TrustLevel = 4 // RFC-002 Level "3": Organization Validated (OV) - legal entity + TrustLevel_TRUST_LEVEL_CV TrustLevel = 5 // RFC-002 Level "4": Extended Validated (EV) - security audit +) +``` + + +### func \(TrustLevel\) [Descriptor]() + +```go +func (TrustLevel) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(TrustLevel\) [Enum]() + +```go +func (x TrustLevel) Enum() *TrustLevel +``` + + + + +### func \(TrustLevel\) [EnumDescriptor]() + +```go +func (TrustLevel) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use TrustLevel.Descriptor instead. + + +### func \(TrustLevel\) [Number]() + +```go +func (x TrustLevel) Number() protoreflect.EnumNumber +``` + + + + +### func \(TrustLevel\) [String]() + +```go +func (x TrustLevel) String() string +``` + + + + +### func \(TrustLevel\) [Type]() + +```go +func (TrustLevel) Type() protoreflect.EnumType +``` + + + + +## type [TrustStoreServiceClient]() + +TrustStoreServiceClient is the client API for TrustStoreService service. + +For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. + +TrustStoreService manages trusted keys and certificates + +```go +type TrustStoreServiceClient interface { + // Add a trusted public key + AddKey(ctx context.Context, in *AddKeyRequest, opts ...grpc.CallOption) (*AddKeyResponse, error) + // Remove a trusted key + RemoveKey(ctx context.Context, in *RemoveKeyRequest, opts ...grpc.CallOption) (*RemoveKeyResponse, error) + // Get a key by DID + GetKey(ctx context.Context, in *GetKeyRequest, opts ...grpc.CallOption) (*GetKeyResponse, error) + // List all trusted keys + ListKeys(ctx context.Context, in *ListKeysRequest, opts ...grpc.CallOption) (*ListKeysResponse, error) + // Check if a key is trusted + IsTrusted(ctx context.Context, in *IsTrustedRequest, opts ...grpc.CallOption) (*IsTrustedResponse, error) + // Import keys from a directory + ImportFromDirectory(ctx context.Context, in *ImportFromDirectoryRequest, opts ...grpc.CallOption) (*ImportFromDirectoryResponse, error) + // Export keys to a directory + ExportToDirectory(ctx context.Context, in *ExportToDirectoryRequest, opts ...grpc.CallOption) (*ExportToDirectoryResponse, error) + // Clear all keys + Clear(ctx context.Context, in *ClearKeysRequest, opts ...grpc.CallOption) (*ClearKeysResponse, error) +} +``` + + +### func [NewTrustStoreServiceClient]() + +```go +func NewTrustStoreServiceClient(cc grpc.ClientConnInterface) TrustStoreServiceClient +``` + + + + +## type [TrustStoreServiceServer]() + +TrustStoreServiceServer is the server API for TrustStoreService service. All implementations must embed UnimplementedTrustStoreServiceServer for forward compatibility. + +TrustStoreService manages trusted keys and certificates + +```go +type TrustStoreServiceServer interface { + // Add a trusted public key + AddKey(context.Context, *AddKeyRequest) (*AddKeyResponse, error) + // Remove a trusted key + RemoveKey(context.Context, *RemoveKeyRequest) (*RemoveKeyResponse, error) + // Get a key by DID + GetKey(context.Context, *GetKeyRequest) (*GetKeyResponse, error) + // List all trusted keys + ListKeys(context.Context, *ListKeysRequest) (*ListKeysResponse, error) + // Check if a key is trusted + IsTrusted(context.Context, *IsTrustedRequest) (*IsTrustedResponse, error) + // Import keys from a directory + ImportFromDirectory(context.Context, *ImportFromDirectoryRequest) (*ImportFromDirectoryResponse, error) + // Export keys to a directory + ExportToDirectory(context.Context, *ExportToDirectoryRequest) (*ExportToDirectoryResponse, error) + // Clear all keys + Clear(context.Context, *ClearKeysRequest) (*ClearKeysResponse, error) + // contains filtered or unexported methods +} +``` + + +## type [TrustedKey]() + +Trusted key metadata + +```go +type TrustedKey struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` // DID associated with key + KeyId string `protobuf:"bytes,2,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` // Key identifier + Algorithm KeyAlgorithm `protobuf:"varint,3,opt,name=algorithm,proto3,enum=capiscio.v1.KeyAlgorithm" json:"algorithm,omitempty"` // Key algorithm + PublicKey []byte `protobuf:"bytes,4,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` // Public key bytes + Format KeyFormat `protobuf:"varint,5,opt,name=format,proto3,enum=capiscio.v1.KeyFormat" json:"format,omitempty"` // Key format + AddedAt *Timestamp `protobuf:"bytes,6,opt,name=added_at,json=addedAt,proto3" json:"added_at,omitempty"` // When key was added + ExpiresAt *Timestamp `protobuf:"bytes,7,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` // Optional expiration + Metadata map[string]string `protobuf:"bytes,8,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Additional metadata + // contains filtered or unexported fields +} +``` + + +### func \(\*TrustedKey\) [Descriptor]() + +```go +func (*TrustedKey) Descriptor() ([]byte, []int) +``` + +Deprecated: Use TrustedKey.ProtoReflect.Descriptor instead. + + +### func \(\*TrustedKey\) [GetAddedAt]() + +```go +func (x *TrustedKey) GetAddedAt() *Timestamp +``` + + + + +### func \(\*TrustedKey\) [GetAlgorithm]() + +```go +func (x *TrustedKey) GetAlgorithm() KeyAlgorithm +``` + + + + +### func \(\*TrustedKey\) [GetDid]() + +```go +func (x *TrustedKey) GetDid() string +``` + + + + +### func \(\*TrustedKey\) [GetExpiresAt]() + +```go +func (x *TrustedKey) GetExpiresAt() *Timestamp +``` + + + + +### func \(\*TrustedKey\) [GetFormat]() + +```go +func (x *TrustedKey) GetFormat() KeyFormat +``` + + + + +### func \(\*TrustedKey\) [GetKeyId]() + +```go +func (x *TrustedKey) GetKeyId() string +``` + + + + +### func \(\*TrustedKey\) [GetMetadata]() + +```go +func (x *TrustedKey) GetMetadata() map[string]string +``` + + + + +### func \(\*TrustedKey\) [GetPublicKey]() + +```go +func (x *TrustedKey) GetPublicKey() []byte +``` + + + + +### func \(\*TrustedKey\) [ProtoMessage]() + +```go +func (*TrustedKey) ProtoMessage() +``` + + + + +### func \(\*TrustedKey\) [ProtoReflect]() + +```go +func (x *TrustedKey) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*TrustedKey\) [Reset]() + +```go +func (x *TrustedKey) Reset() +``` + + + + +### func \(\*TrustedKey\) [String]() + +```go +func (x *TrustedKey) String() string +``` + + + + +## type [UnimplementedBadgeServiceServer]() + +UnimplementedBadgeServiceServer must be embedded to have forward compatible implementations. + +NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called. + +```go +type UnimplementedBadgeServiceServer struct{} +``` + + +### func \(UnimplementedBadgeServiceServer\) [CreateDVOrder]() + +```go +func (UnimplementedBadgeServiceServer) CreateDVOrder(context.Context, *CreateDVOrderRequest) (*CreateDVOrderResponse, error) +``` + + + + +### func \(UnimplementedBadgeServiceServer\) [FinalizeDVOrder]() + +```go +func (UnimplementedBadgeServiceServer) FinalizeDVOrder(context.Context, *FinalizeDVOrderRequest) (*FinalizeDVOrderResponse, error) +``` + + + + +### func \(UnimplementedBadgeServiceServer\) [GetDVOrder]() + +```go +func (UnimplementedBadgeServiceServer) GetDVOrder(context.Context, *GetDVOrderRequest) (*GetDVOrderResponse, error) +``` + + + + +### func \(UnimplementedBadgeServiceServer\) [ParseBadge]() + +```go +func (UnimplementedBadgeServiceServer) ParseBadge(context.Context, *ParseBadgeRequest) (*ParseBadgeResponse, error) +``` + + + + +### func \(UnimplementedBadgeServiceServer\) [RequestBadge]() + +```go +func (UnimplementedBadgeServiceServer) RequestBadge(context.Context, *RequestBadgeRequest) (*RequestBadgeResponse, error) +``` + + + + +### func \(UnimplementedBadgeServiceServer\) [RequestPoPBadge]() + +```go +func (UnimplementedBadgeServiceServer) RequestPoPBadge(context.Context, *RequestPoPBadgeRequest) (*RequestPoPBadgeResponse, error) +``` + + + + +### func \(UnimplementedBadgeServiceServer\) [SignBadge]() + +```go +func (UnimplementedBadgeServiceServer) SignBadge(context.Context, *SignBadgeRequest) (*SignBadgeResponse, error) +``` + + + + +### func \(UnimplementedBadgeServiceServer\) [StartKeeper]() + +```go +func (UnimplementedBadgeServiceServer) StartKeeper(*StartKeeperRequest, grpc.ServerStreamingServer[KeeperEvent]) error +``` + + + + +### func \(UnimplementedBadgeServiceServer\) [VerifyBadge]() + +```go +func (UnimplementedBadgeServiceServer) VerifyBadge(context.Context, *VerifyBadgeRequest) (*VerifyBadgeResponse, error) +``` + + + + +### func \(UnimplementedBadgeServiceServer\) [VerifyBadgeWithOptions]() + +```go +func (UnimplementedBadgeServiceServer) VerifyBadgeWithOptions(context.Context, *VerifyBadgeWithOptionsRequest) (*VerifyBadgeResponse, error) +``` + + + + +## type [UnimplementedDIDServiceServer]() + +UnimplementedDIDServiceServer must be embedded to have forward compatible implementations. + +NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called. + +```go +type UnimplementedDIDServiceServer struct{} +``` + + +### func \(UnimplementedDIDServiceServer\) [DocumentURL]() + +```go +func (UnimplementedDIDServiceServer) DocumentURL(context.Context, *DocumentURLRequest) (*DocumentURLResponse, error) +``` + + + + +### func \(UnimplementedDIDServiceServer\) [IsAgentDID]() + +```go +func (UnimplementedDIDServiceServer) IsAgentDID(context.Context, *IsAgentDIDRequest) (*IsAgentDIDResponse, error) +``` + + + + +### func \(UnimplementedDIDServiceServer\) [NewAgentDID]() + +```go +func (UnimplementedDIDServiceServer) NewAgentDID(context.Context, *NewAgentDIDRequest) (*NewAgentDIDResponse, error) +``` + + + + +### func \(UnimplementedDIDServiceServer\) [NewCapiscIOAgentDID]() + +```go +func (UnimplementedDIDServiceServer) NewCapiscIOAgentDID(context.Context, *NewCapiscIOAgentDIDRequest) (*NewAgentDIDResponse, error) +``` + + + + +### func \(UnimplementedDIDServiceServer\) [Parse]() + +```go +func (UnimplementedDIDServiceServer) Parse(context.Context, *ParseDIDRequest) (*ParseDIDResponse, error) +``` + + + + +## type [UnimplementedMCPServiceServer]() + +UnimplementedMCPServiceServer must be embedded to have forward compatible implementations. + +NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called. + +```go +type UnimplementedMCPServiceServer struct{} +``` + + +### func \(UnimplementedMCPServiceServer\) [EvaluatePolicyDecision]() + +```go +func (UnimplementedMCPServiceServer) EvaluatePolicyDecision(context.Context, *PolicyDecisionRequest) (*PolicyDecisionResponse, error) +``` + + + + +### func \(UnimplementedMCPServiceServer\) [EvaluateToolAccess]() + +```go +func (UnimplementedMCPServiceServer) EvaluateToolAccess(context.Context, *EvaluateToolAccessRequest) (*EvaluateToolAccessResponse, error) +``` + + + + +### func \(UnimplementedMCPServiceServer\) [Health]() + +```go +func (UnimplementedMCPServiceServer) Health(context.Context, *MCPHealthRequest) (*MCPHealthResponse, error) +``` + + + + +### func \(UnimplementedMCPServiceServer\) [ParseServerIdentity]() + +```go +func (UnimplementedMCPServiceServer) ParseServerIdentity(context.Context, *ParseServerIdentityRequest) (*ParseServerIdentityResponse, error) +``` + + + + +### func \(UnimplementedMCPServiceServer\) [VerifyServerIdentity]() + +```go +func (UnimplementedMCPServiceServer) VerifyServerIdentity(context.Context, *VerifyServerIdentityRequest) (*VerifyServerIdentityResponse, error) +``` + + + + +## type [UnimplementedRegistryServiceServer]() + +UnimplementedRegistryServiceServer must be embedded to have forward compatible implementations. + +NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called. + +```go +type UnimplementedRegistryServiceServer struct{} +``` + + +### func \(UnimplementedRegistryServiceServer\) [DeregisterAgent]() + +```go +func (UnimplementedRegistryServiceServer) DeregisterAgent(context.Context, *DeregisterAgentRequest) (*DeregisterAgentResponse, error) +``` + + + + +### func \(UnimplementedRegistryServiceServer\) [GetAgent]() + +```go +func (UnimplementedRegistryServiceServer) GetAgent(context.Context, *GetAgentRequest) (*GetAgentResponse, error) +``` + + + + +### func \(UnimplementedRegistryServiceServer\) [GetStats]() + +```go +func (UnimplementedRegistryServiceServer) GetStats(context.Context, *GetStatsRequest) (*GetStatsResponse, error) +``` + + + + +### func \(UnimplementedRegistryServiceServer\) [ListAgents]() + +```go +func (UnimplementedRegistryServiceServer) ListAgents(context.Context, *ListAgentsRequest) (*ListAgentsResponse, error) +``` + + + + +### func \(UnimplementedRegistryServiceServer\) [Ping]() + +```go +func (UnimplementedRegistryServiceServer) Ping(context.Context, *PingRequest) (*PingResponse, error) +``` + + + + +### func \(UnimplementedRegistryServiceServer\) [RegisterAgent]() + +```go +func (UnimplementedRegistryServiceServer) RegisterAgent(context.Context, *RegisterAgentRequest) (*RegisterAgentResponse, error) +``` + + + + +### func \(UnimplementedRegistryServiceServer\) [SearchAgents]() + +```go +func (UnimplementedRegistryServiceServer) SearchAgents(context.Context, *SearchAgentsRequest) (*SearchAgentsResponse, error) +``` + + + + +### func \(UnimplementedRegistryServiceServer\) [UpdateAgent]() + +```go +func (UnimplementedRegistryServiceServer) UpdateAgent(context.Context, *UpdateAgentRequest) (*UpdateAgentResponse, error) +``` + + + + +### func \(UnimplementedRegistryServiceServer\) [VerifyRegistration]() + +```go +func (UnimplementedRegistryServiceServer) VerifyRegistration(context.Context, *VerifyRegistrationRequest) (*VerifyRegistrationResponse, error) +``` + + + + +## type [UnimplementedRevocationServiceServer]() + +UnimplementedRevocationServiceServer must be embedded to have forward compatible implementations. + +NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called. + +```go +type UnimplementedRevocationServiceServer struct{} +``` + + +### func \(UnimplementedRevocationServiceServer\) [ClearCache]() + +```go +func (UnimplementedRevocationServiceServer) ClearCache(context.Context, *ClearCacheRequest) (*ClearCacheResponse, error) +``` + + + + +### func \(UnimplementedRevocationServiceServer\) [FetchRevocationList]() + +```go +func (UnimplementedRevocationServiceServer) FetchRevocationList(context.Context, *FetchRevocationListRequest) (*FetchRevocationListResponse, error) +``` + + + + +### func \(UnimplementedRevocationServiceServer\) [GetCacheStats]() + +```go +func (UnimplementedRevocationServiceServer) GetCacheStats(context.Context, *GetCacheStatsRequest) (*GetCacheStatsResponse, error) +``` + + + + +### func \(UnimplementedRevocationServiceServer\) [IsRevoked]() + +```go +func (UnimplementedRevocationServiceServer) IsRevoked(context.Context, *IsRevokedRequest) (*IsRevokedResponse, error) +``` + + + + +### func \(UnimplementedRevocationServiceServer\) [ListRevocations]() + +```go +func (UnimplementedRevocationServiceServer) ListRevocations(context.Context, *ListRevocationsRequest) (*ListRevocationsResponse, error) +``` + + + + +### func \(UnimplementedRevocationServiceServer\) [Revoke]() + +```go +func (UnimplementedRevocationServiceServer) Revoke(context.Context, *RevokeRequest) (*RevokeResponse, error) +``` + + + + +### func \(UnimplementedRevocationServiceServer\) [Unrevoke]() + +```go +func (UnimplementedRevocationServiceServer) Unrevoke(context.Context, *UnrevokeRequest) (*UnrevokeResponse, error) +``` + + + + +## type [UnimplementedScoringServiceServer]() + +UnimplementedScoringServiceServer must be embedded to have forward compatible implementations. + +NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called. + +```go +type UnimplementedScoringServiceServer struct{} +``` + + +### func \(UnimplementedScoringServiceServer\) [AggregateScores]() + +```go +func (UnimplementedScoringServiceServer) AggregateScores(context.Context, *AggregateScoresRequest) (*AggregateScoresResponse, error) +``` + + + + +### func \(UnimplementedScoringServiceServer\) [GetRuleSet]() + +```go +func (UnimplementedScoringServiceServer) GetRuleSet(context.Context, *GetRuleSetRequest) (*GetRuleSetResponse, error) +``` + + + + +### func \(UnimplementedScoringServiceServer\) [ListRuleSets]() + +```go +func (UnimplementedScoringServiceServer) ListRuleSets(context.Context, *ListRuleSetsRequest) (*ListRuleSetsResponse, error) +``` + + + + +### func \(UnimplementedScoringServiceServer\) [ScoreAgentCard]() + +```go +func (UnimplementedScoringServiceServer) ScoreAgentCard(context.Context, *ScoreAgentCardRequest) (*ScoreAgentCardResponse, error) +``` + + + + +### func \(UnimplementedScoringServiceServer\) [ValidateRule]() + +```go +func (UnimplementedScoringServiceServer) ValidateRule(context.Context, *ValidateRuleRequest) (*ValidateRuleResponse, error) +``` + + + + +## type [UnimplementedSimpleGuardServiceServer]() + +UnimplementedSimpleGuardServiceServer must be embedded to have forward compatible implementations. + +NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called. + +```go +type UnimplementedSimpleGuardServiceServer struct{} +``` + + +### func \(UnimplementedSimpleGuardServiceServer\) [ExportKey]() + +```go +func (UnimplementedSimpleGuardServiceServer) ExportKey(context.Context, *ExportKeyRequest) (*ExportKeyResponse, error) +``` + + + + +### func \(UnimplementedSimpleGuardServiceServer\) [GenerateKeyPair]() + +```go +func (UnimplementedSimpleGuardServiceServer) GenerateKeyPair(context.Context, *GenerateKeyPairRequest) (*GenerateKeyPairResponse, error) +``` + + + + +### func \(UnimplementedSimpleGuardServiceServer\) [GetKeyInfo]() + +```go +func (UnimplementedSimpleGuardServiceServer) GetKeyInfo(context.Context, *GetKeyInfoRequest) (*GetKeyInfoResponse, error) +``` + + + + +### func \(UnimplementedSimpleGuardServiceServer\) [Init]() + +```go +func (UnimplementedSimpleGuardServiceServer) Init(context.Context, *InitRequest) (*InitResponse, error) +``` + + + + +### func \(UnimplementedSimpleGuardServiceServer\) [LoadKey]() + +```go +func (UnimplementedSimpleGuardServiceServer) LoadKey(context.Context, *LoadKeyRequest) (*LoadKeyResponse, error) +``` + + + + +### func \(UnimplementedSimpleGuardServiceServer\) [Sign]() + +```go +func (UnimplementedSimpleGuardServiceServer) Sign(context.Context, *SignRequest) (*SignResponse, error) +``` + + + + +### func \(UnimplementedSimpleGuardServiceServer\) [SignAttached]() + +```go +func (UnimplementedSimpleGuardServiceServer) SignAttached(context.Context, *SignAttachedRequest) (*SignAttachedResponse, error) +``` + + + + +### func \(UnimplementedSimpleGuardServiceServer\) [Verify]() + +```go +func (UnimplementedSimpleGuardServiceServer) Verify(context.Context, *VerifyRequest) (*VerifyResponse, error) +``` + + + + +### func \(UnimplementedSimpleGuardServiceServer\) [VerifyAttached]() + +```go +func (UnimplementedSimpleGuardServiceServer) VerifyAttached(context.Context, *VerifyAttachedRequest) (*VerifyAttachedResponse, error) +``` + + + + +## type [UnimplementedTrustStoreServiceServer]() + +UnimplementedTrustStoreServiceServer must be embedded to have forward compatible implementations. + +NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called. + +```go +type UnimplementedTrustStoreServiceServer struct{} +``` + + +### func \(UnimplementedTrustStoreServiceServer\) [AddKey]() + +```go +func (UnimplementedTrustStoreServiceServer) AddKey(context.Context, *AddKeyRequest) (*AddKeyResponse, error) +``` + + + + +### func \(UnimplementedTrustStoreServiceServer\) [Clear]() + +```go +func (UnimplementedTrustStoreServiceServer) Clear(context.Context, *ClearKeysRequest) (*ClearKeysResponse, error) +``` + + + + +### func \(UnimplementedTrustStoreServiceServer\) [ExportToDirectory]() + +```go +func (UnimplementedTrustStoreServiceServer) ExportToDirectory(context.Context, *ExportToDirectoryRequest) (*ExportToDirectoryResponse, error) +``` + + + + +### func \(UnimplementedTrustStoreServiceServer\) [GetKey]() + +```go +func (UnimplementedTrustStoreServiceServer) GetKey(context.Context, *GetKeyRequest) (*GetKeyResponse, error) +``` + + + + +### func \(UnimplementedTrustStoreServiceServer\) [ImportFromDirectory]() + +```go +func (UnimplementedTrustStoreServiceServer) ImportFromDirectory(context.Context, *ImportFromDirectoryRequest) (*ImportFromDirectoryResponse, error) +``` + + + + +### func \(UnimplementedTrustStoreServiceServer\) [IsTrusted]() + +```go +func (UnimplementedTrustStoreServiceServer) IsTrusted(context.Context, *IsTrustedRequest) (*IsTrustedResponse, error) +``` + + + + +### func \(UnimplementedTrustStoreServiceServer\) [ListKeys]() + +```go +func (UnimplementedTrustStoreServiceServer) ListKeys(context.Context, *ListKeysRequest) (*ListKeysResponse, error) +``` + + + + +### func \(UnimplementedTrustStoreServiceServer\) [RemoveKey]() + +```go +func (UnimplementedTrustStoreServiceServer) RemoveKey(context.Context, *RemoveKeyRequest) (*RemoveKeyResponse, error) +``` + + + + +## type [UnrevokeRequest]() + +Request to unrevoke + +```go +type UnrevokeRequest struct { + Subject string `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*UnrevokeRequest\) [Descriptor]() + +```go +func (*UnrevokeRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use UnrevokeRequest.ProtoReflect.Descriptor instead. + + +### func \(\*UnrevokeRequest\) [GetSubject]() + +```go +func (x *UnrevokeRequest) GetSubject() string +``` + + + + +### func \(\*UnrevokeRequest\) [ProtoMessage]() + +```go +func (*UnrevokeRequest) ProtoMessage() +``` + + + + +### func \(\*UnrevokeRequest\) [ProtoReflect]() + +```go +func (x *UnrevokeRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*UnrevokeRequest\) [Reset]() + +```go +func (x *UnrevokeRequest) Reset() +``` + + + + +### func \(\*UnrevokeRequest\) [String]() + +```go +func (x *UnrevokeRequest) String() string +``` + + + + +## type [UnrevokeResponse]() + +Response for unrevoke + +```go +type UnrevokeResponse struct { + WasRevoked bool `protobuf:"varint,1,opt,name=was_revoked,json=wasRevoked,proto3" json:"was_revoked,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*UnrevokeResponse\) [Descriptor]() + +```go +func (*UnrevokeResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use UnrevokeResponse.ProtoReflect.Descriptor instead. + + +### func \(\*UnrevokeResponse\) [GetErrorMessage]() + +```go +func (x *UnrevokeResponse) GetErrorMessage() string +``` + + + + +### func \(\*UnrevokeResponse\) [GetWasRevoked]() + +```go +func (x *UnrevokeResponse) GetWasRevoked() bool +``` + + + + +### func \(\*UnrevokeResponse\) [ProtoMessage]() + +```go +func (*UnrevokeResponse) ProtoMessage() +``` + + + + +### func \(\*UnrevokeResponse\) [ProtoReflect]() + +```go +func (x *UnrevokeResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*UnrevokeResponse\) [Reset]() + +```go +func (x *UnrevokeResponse) Reset() +``` + + + + +### func \(\*UnrevokeResponse\) [String]() + +```go +func (x *UnrevokeResponse) String() string +``` + + + + +## type [UnsafeBadgeServiceServer]() + +UnsafeBadgeServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to BadgeServiceServer will result in compilation errors. + +```go +type UnsafeBadgeServiceServer interface { + // contains filtered or unexported methods +} +``` + + +## type [UnsafeDIDServiceServer]() + +UnsafeDIDServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to DIDServiceServer will result in compilation errors. + +```go +type UnsafeDIDServiceServer interface { + // contains filtered or unexported methods +} +``` + + +## type [UnsafeMCPServiceServer]() + +UnsafeMCPServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to MCPServiceServer will result in compilation errors. + +```go +type UnsafeMCPServiceServer interface { + // contains filtered or unexported methods +} +``` + + +## type [UnsafeRegistryServiceServer]() + +UnsafeRegistryServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to RegistryServiceServer will result in compilation errors. + +```go +type UnsafeRegistryServiceServer interface { + // contains filtered or unexported methods +} +``` + + +## type [UnsafeRevocationServiceServer]() + +UnsafeRevocationServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to RevocationServiceServer will result in compilation errors. + +```go +type UnsafeRevocationServiceServer interface { + // contains filtered or unexported methods +} +``` + + +## type [UnsafeScoringServiceServer]() + +UnsafeScoringServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to ScoringServiceServer will result in compilation errors. + +```go +type UnsafeScoringServiceServer interface { + // contains filtered or unexported methods +} +``` + + +## type [UnsafeSimpleGuardServiceServer]() + +UnsafeSimpleGuardServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to SimpleGuardServiceServer will result in compilation errors. + +```go +type UnsafeSimpleGuardServiceServer interface { + // contains filtered or unexported methods +} +``` + + +## type [UnsafeTrustStoreServiceServer]() + +UnsafeTrustStoreServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to TrustStoreServiceServer will result in compilation errors. + +```go +type UnsafeTrustStoreServiceServer interface { + // contains filtered or unexported methods +} +``` + + +## type [UpdateAgentRequest]() + +Update request + +```go +type UpdateAgentRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + AgentCardJson string `protobuf:"bytes,2,opt,name=agent_card_json,json=agentCardJson,proto3" json:"agent_card_json,omitempty"` // Optional: new agent card + SignedBadge string `protobuf:"bytes,3,opt,name=signed_badge,json=signedBadge,proto3" json:"signed_badge,omitempty"` // Optional: new badge + Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"` // Optional: new tags (replaces existing) + Metadata map[string]string `protobuf:"bytes,5,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Optional: new metadata (merges) + // contains filtered or unexported fields +} +``` + + +### func \(\*UpdateAgentRequest\) [Descriptor]() + +```go +func (*UpdateAgentRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use UpdateAgentRequest.ProtoReflect.Descriptor instead. + + +### func \(\*UpdateAgentRequest\) [GetAgentCardJson]() + +```go +func (x *UpdateAgentRequest) GetAgentCardJson() string +``` + + + + +### func \(\*UpdateAgentRequest\) [GetDid]() + +```go +func (x *UpdateAgentRequest) GetDid() string +``` + + + + +### func \(\*UpdateAgentRequest\) [GetMetadata]() + +```go +func (x *UpdateAgentRequest) GetMetadata() map[string]string +``` + + + + +### func \(\*UpdateAgentRequest\) [GetSignedBadge]() + +```go +func (x *UpdateAgentRequest) GetSignedBadge() string +``` + + + + +### func \(\*UpdateAgentRequest\) [GetTags]() + +```go +func (x *UpdateAgentRequest) GetTags() []string +``` + + + + +### func \(\*UpdateAgentRequest\) [ProtoMessage]() + +```go +func (*UpdateAgentRequest) ProtoMessage() +``` + + + + +### func \(\*UpdateAgentRequest\) [ProtoReflect]() + +```go +func (x *UpdateAgentRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*UpdateAgentRequest\) [Reset]() + +```go +func (x *UpdateAgentRequest) Reset() +``` + + + + +### func \(\*UpdateAgentRequest\) [String]() + +```go +func (x *UpdateAgentRequest) String() string +``` + + + + +## type [UpdateAgentResponse]() + +Update response + +```go +type UpdateAgentResponse struct { + Agent *RegisteredAgent `protobuf:"bytes,1,opt,name=agent,proto3" json:"agent,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*UpdateAgentResponse\) [Descriptor]() + +```go +func (*UpdateAgentResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use UpdateAgentResponse.ProtoReflect.Descriptor instead. + + +### func \(\*UpdateAgentResponse\) [GetAgent]() + +```go +func (x *UpdateAgentResponse) GetAgent() *RegisteredAgent +``` + + + + +### func \(\*UpdateAgentResponse\) [GetErrorMessage]() + +```go +func (x *UpdateAgentResponse) GetErrorMessage() string +``` + + + + +### func \(\*UpdateAgentResponse\) [ProtoMessage]() + +```go +func (*UpdateAgentResponse) ProtoMessage() +``` + + + + +### func \(\*UpdateAgentResponse\) [ProtoReflect]() + +```go +func (x *UpdateAgentResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*UpdateAgentResponse\) [Reset]() + +```go +func (x *UpdateAgentResponse) Reset() +``` + + + + +### func \(\*UpdateAgentResponse\) [String]() + +```go +func (x *UpdateAgentResponse) String() string +``` + + + + +## type [ValidateRuleRequest]() + +Request to validate a single rule + +```go +type ValidateRuleRequest struct { + RuleId string `protobuf:"bytes,1,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` + AgentCardJson string `protobuf:"bytes,2,opt,name=agent_card_json,json=agentCardJson,proto3" json:"agent_card_json,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ValidateRuleRequest\) [Descriptor]() + +```go +func (*ValidateRuleRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ValidateRuleRequest.ProtoReflect.Descriptor instead. + + +### func \(\*ValidateRuleRequest\) [GetAgentCardJson]() + +```go +func (x *ValidateRuleRequest) GetAgentCardJson() string +``` + + + + +### func \(\*ValidateRuleRequest\) [GetRuleId]() + +```go +func (x *ValidateRuleRequest) GetRuleId() string +``` + + + + +### func \(\*ValidateRuleRequest\) [ProtoMessage]() + +```go +func (*ValidateRuleRequest) ProtoMessage() +``` + + + + +### func \(\*ValidateRuleRequest\) [ProtoReflect]() + +```go +func (x *ValidateRuleRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ValidateRuleRequest\) [Reset]() + +```go +func (x *ValidateRuleRequest) Reset() +``` + + + + +### func \(\*ValidateRuleRequest\) [String]() + +```go +func (x *ValidateRuleRequest) String() string +``` + + + + +## type [ValidateRuleResponse]() + +Response for single rule validation + +```go +type ValidateRuleResponse struct { + Result *RuleResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ValidateRuleResponse\) [Descriptor]() + +```go +func (*ValidateRuleResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ValidateRuleResponse.ProtoReflect.Descriptor instead. + + +### func \(\*ValidateRuleResponse\) [GetErrorMessage]() + +```go +func (x *ValidateRuleResponse) GetErrorMessage() string +``` + + + + +### func \(\*ValidateRuleResponse\) [GetResult]() + +```go +func (x *ValidateRuleResponse) GetResult() *RuleResult +``` + + + + +### func \(\*ValidateRuleResponse\) [ProtoMessage]() + +```go +func (*ValidateRuleResponse) ProtoMessage() +``` + + + + +### func \(\*ValidateRuleResponse\) [ProtoReflect]() + +```go +func (x *ValidateRuleResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ValidateRuleResponse\) [Reset]() + +```go +func (x *ValidateRuleResponse) Reset() +``` + + + + +### func \(\*ValidateRuleResponse\) [String]() + +```go +func (x *ValidateRuleResponse) String() string +``` + + + + +## type [ValidationIssue]() + +A single validation issue + +```go +type ValidationIssue struct { + Field string `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Severity ValidationSeverity `protobuf:"varint,3,opt,name=severity,proto3,enum=capiscio.v1.ValidationSeverity" json:"severity,omitempty"` + Code string `protobuf:"bytes,4,opt,name=code,proto3" json:"code,omitempty"` + Details string `protobuf:"bytes,5,opt,name=details,proto3" json:"details,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ValidationIssue\) [Descriptor]() + +```go +func (*ValidationIssue) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ValidationIssue.ProtoReflect.Descriptor instead. + + +### func \(\*ValidationIssue\) [GetCode]() + +```go +func (x *ValidationIssue) GetCode() string +``` + + + + +### func \(\*ValidationIssue\) [GetDetails]() + +```go +func (x *ValidationIssue) GetDetails() string +``` + + + + +### func \(\*ValidationIssue\) [GetField]() + +```go +func (x *ValidationIssue) GetField() string +``` + + + + +### func \(\*ValidationIssue\) [GetMessage]() + +```go +func (x *ValidationIssue) GetMessage() string +``` + + + + +### func \(\*ValidationIssue\) [GetSeverity]() + +```go +func (x *ValidationIssue) GetSeverity() ValidationSeverity +``` + + + + +### func \(\*ValidationIssue\) [ProtoMessage]() + +```go +func (*ValidationIssue) ProtoMessage() +``` + + + + +### func \(\*ValidationIssue\) [ProtoReflect]() + +```go +func (x *ValidationIssue) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ValidationIssue\) [Reset]() + +```go +func (x *ValidationIssue) Reset() +``` + + + + +### func \(\*ValidationIssue\) [String]() + +```go +func (x *ValidationIssue) String() string +``` + + + + +## type [ValidationResult]() + +Generic validation result + +```go +type ValidationResult struct { + Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"` + Issues []*ValidationIssue `protobuf:"bytes,2,rep,name=issues,proto3" json:"issues,omitempty"` + ValidatedAt string `protobuf:"bytes,3,opt,name=validated_at,json=validatedAt,proto3" json:"validated_at,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*ValidationResult\) [Descriptor]() + +```go +func (*ValidationResult) Descriptor() ([]byte, []int) +``` + +Deprecated: Use ValidationResult.ProtoReflect.Descriptor instead. + + +### func \(\*ValidationResult\) [GetIssues]() + +```go +func (x *ValidationResult) GetIssues() []*ValidationIssue +``` + + + + +### func \(\*ValidationResult\) [GetValid]() + +```go +func (x *ValidationResult) GetValid() bool +``` + + + + +### func \(\*ValidationResult\) [GetValidatedAt]() + +```go +func (x *ValidationResult) GetValidatedAt() string +``` + + + + +### func \(\*ValidationResult\) [ProtoMessage]() + +```go +func (*ValidationResult) ProtoMessage() +``` + + + + +### func \(\*ValidationResult\) [ProtoReflect]() + +```go +func (x *ValidationResult) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*ValidationResult\) [Reset]() + +```go +func (x *ValidationResult) Reset() +``` + + + + +### func \(\*ValidationResult\) [String]() + +```go +func (x *ValidationResult) String() string +``` + + + + +## type [ValidationSeverity]() + +Validation severity levels + +```go +type ValidationSeverity int32 +``` + + + +```go +const ( + ValidationSeverity_VALIDATION_SEVERITY_UNSPECIFIED ValidationSeverity = 0 + ValidationSeverity_VALIDATION_SEVERITY_INFO ValidationSeverity = 1 + ValidationSeverity_VALIDATION_SEVERITY_WARNING ValidationSeverity = 2 + ValidationSeverity_VALIDATION_SEVERITY_ERROR ValidationSeverity = 3 +) +``` + + +### func \(ValidationSeverity\) [Descriptor]() + +```go +func (ValidationSeverity) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(ValidationSeverity\) [Enum]() + +```go +func (x ValidationSeverity) Enum() *ValidationSeverity +``` + + + + +### func \(ValidationSeverity\) [EnumDescriptor]() + +```go +func (ValidationSeverity) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use ValidationSeverity.Descriptor instead. + + +### func \(ValidationSeverity\) [Number]() + +```go +func (x ValidationSeverity) Number() protoreflect.EnumNumber +``` + + + + +### func \(ValidationSeverity\) [String]() + +```go +func (x ValidationSeverity) String() string +``` + + + + +### func \(ValidationSeverity\) [Type]() + +```go +func (ValidationSeverity) Type() protoreflect.EnumType +``` + + + + +## type [VerifyAttachedRequest]() + +Request to verify attached + +```go +type VerifyAttachedRequest struct { + Jws string `protobuf:"bytes,1,opt,name=jws,proto3" json:"jws,omitempty"` + DetachedPayload []byte `protobuf:"bytes,2,opt,name=detached_payload,json=detachedPayload,proto3" json:"detached_payload,omitempty"` // If payload was detached + ExpectedSigner string `protobuf:"bytes,3,opt,name=expected_signer,json=expectedSigner,proto3" json:"expected_signer,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*VerifyAttachedRequest\) [Descriptor]() + +```go +func (*VerifyAttachedRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use VerifyAttachedRequest.ProtoReflect.Descriptor instead. + + +### func \(\*VerifyAttachedRequest\) [GetDetachedPayload]() + +```go +func (x *VerifyAttachedRequest) GetDetachedPayload() []byte +``` + + + + +### func \(\*VerifyAttachedRequest\) [GetExpectedSigner]() + +```go +func (x *VerifyAttachedRequest) GetExpectedSigner() string +``` + + + + +### func \(\*VerifyAttachedRequest\) [GetJws]() + +```go +func (x *VerifyAttachedRequest) GetJws() string +``` + + + + +### func \(\*VerifyAttachedRequest\) [ProtoMessage]() + +```go +func (*VerifyAttachedRequest) ProtoMessage() +``` + + + + +### func \(\*VerifyAttachedRequest\) [ProtoReflect]() + +```go +func (x *VerifyAttachedRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*VerifyAttachedRequest\) [Reset]() + +```go +func (x *VerifyAttachedRequest) Reset() +``` + + + + +### func \(\*VerifyAttachedRequest\) [String]() + +```go +func (x *VerifyAttachedRequest) String() string +``` + + + + +## type [VerifyAttachedResponse]() + +Response for attached verification + +```go +type VerifyAttachedResponse struct { + Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"` + Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` // Extracted payload + SignerDid string `protobuf:"bytes,3,opt,name=signer_did,json=signerDid,proto3" json:"signer_did,omitempty"` + KeyId string `protobuf:"bytes,4,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` + Validation *ValidationResult `protobuf:"bytes,5,opt,name=validation,proto3" json:"validation,omitempty"` + ErrorMessage string `protobuf:"bytes,6,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*VerifyAttachedResponse\) [Descriptor]() + +```go +func (*VerifyAttachedResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use VerifyAttachedResponse.ProtoReflect.Descriptor instead. + + +### func \(\*VerifyAttachedResponse\) [GetErrorMessage]() + +```go +func (x *VerifyAttachedResponse) GetErrorMessage() string +``` + + + + +### func \(\*VerifyAttachedResponse\) [GetKeyId]() + +```go +func (x *VerifyAttachedResponse) GetKeyId() string +``` + + + + +### func \(\*VerifyAttachedResponse\) [GetPayload]() + +```go +func (x *VerifyAttachedResponse) GetPayload() []byte +``` + + + + +### func \(\*VerifyAttachedResponse\) [GetSignerDid]() + +```go +func (x *VerifyAttachedResponse) GetSignerDid() string +``` + + + + +### func \(\*VerifyAttachedResponse\) [GetValid]() + +```go +func (x *VerifyAttachedResponse) GetValid() bool +``` + + + + +### func \(\*VerifyAttachedResponse\) [GetValidation]() + +```go +func (x *VerifyAttachedResponse) GetValidation() *ValidationResult +``` + + + + +### func \(\*VerifyAttachedResponse\) [ProtoMessage]() + +```go +func (*VerifyAttachedResponse) ProtoMessage() +``` + + + + +### func \(\*VerifyAttachedResponse\) [ProtoReflect]() + +```go +func (x *VerifyAttachedResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*VerifyAttachedResponse\) [Reset]() + +```go +func (x *VerifyAttachedResponse) Reset() +``` + + + + +### func \(\*VerifyAttachedResponse\) [String]() + +```go +func (x *VerifyAttachedResponse) String() string +``` + + + + +## type [VerifyBadgeRequest]() + +Request to verify a badge + +```go +type VerifyBadgeRequest struct { + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + // Public key in JWK format (JSON string) - optional if JWKS URL used + PublicKeyJwk string `protobuf:"bytes,2,opt,name=public_key_jwk,json=publicKeyJwk,proto3" json:"public_key_jwk,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*VerifyBadgeRequest\) [Descriptor]() + +```go +func (*VerifyBadgeRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use VerifyBadgeRequest.ProtoReflect.Descriptor instead. + + +### func \(\*VerifyBadgeRequest\) [GetPublicKeyJwk]() + +```go +func (x *VerifyBadgeRequest) GetPublicKeyJwk() string +``` + + + + +### func \(\*VerifyBadgeRequest\) [GetToken]() + +```go +func (x *VerifyBadgeRequest) GetToken() string +``` + + + + +### func \(\*VerifyBadgeRequest\) [ProtoMessage]() + +```go +func (*VerifyBadgeRequest) ProtoMessage() +``` + + + + +### func \(\*VerifyBadgeRequest\) [ProtoReflect]() + +```go +func (x *VerifyBadgeRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*VerifyBadgeRequest\) [Reset]() + +```go +func (x *VerifyBadgeRequest) Reset() +``` + + + + +### func \(\*VerifyBadgeRequest\) [String]() + +```go +func (x *VerifyBadgeRequest) String() string +``` + + + + +## type [VerifyBadgeResponse]() + +Badge verification result + +```go +type VerifyBadgeResponse struct { + Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"` + Claims *BadgeClaims `protobuf:"bytes,2,opt,name=claims,proto3" json:"claims,omitempty"` + ModeUsed VerifyMode `protobuf:"varint,3,opt,name=mode_used,json=modeUsed,proto3,enum=capiscio.v1.VerifyMode" json:"mode_used,omitempty"` + Warnings []string `protobuf:"bytes,4,rep,name=warnings,proto3" json:"warnings,omitempty"` + ErrorCode string `protobuf:"bytes,5,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + ErrorMessage string `protobuf:"bytes,6,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*VerifyBadgeResponse\) [Descriptor]() + +```go +func (*VerifyBadgeResponse) Descriptor() ([]byte, []int) +``` + +Deprecated: Use VerifyBadgeResponse.ProtoReflect.Descriptor instead. + + +### func \(\*VerifyBadgeResponse\) [GetClaims]() + +```go +func (x *VerifyBadgeResponse) GetClaims() *BadgeClaims +``` + + + + +### func \(\*VerifyBadgeResponse\) [GetErrorCode]() + +```go +func (x *VerifyBadgeResponse) GetErrorCode() string +``` + + + + +### func \(\*VerifyBadgeResponse\) [GetErrorMessage]() + +```go +func (x *VerifyBadgeResponse) GetErrorMessage() string +``` + + + + +### func \(\*VerifyBadgeResponse\) [GetModeUsed]() + +```go +func (x *VerifyBadgeResponse) GetModeUsed() VerifyMode +``` + + + + +### func \(\*VerifyBadgeResponse\) [GetValid]() + +```go +func (x *VerifyBadgeResponse) GetValid() bool +``` + + + + +### func \(\*VerifyBadgeResponse\) [GetWarnings]() + +```go +func (x *VerifyBadgeResponse) GetWarnings() []string +``` + + + + +### func \(\*VerifyBadgeResponse\) [ProtoMessage]() + +```go +func (*VerifyBadgeResponse) ProtoMessage() +``` + + + + +### func \(\*VerifyBadgeResponse\) [ProtoReflect]() + +```go +func (x *VerifyBadgeResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*VerifyBadgeResponse\) [Reset]() + +```go +func (x *VerifyBadgeResponse) Reset() +``` + + + + +### func \(\*VerifyBadgeResponse\) [String]() + +```go +func (x *VerifyBadgeResponse) String() string +``` + + + + +## type [VerifyBadgeWithOptionsRequest]() + +Request to verify with options + +```go +type VerifyBadgeWithOptionsRequest struct { + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + Options *VerifyOptions `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"` + // contains filtered or unexported fields +} +``` + + +### func \(\*VerifyBadgeWithOptionsRequest\) [Descriptor]() + +```go +func (*VerifyBadgeWithOptionsRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use VerifyBadgeWithOptionsRequest.ProtoReflect.Descriptor instead. + + +### func \(\*VerifyBadgeWithOptionsRequest\) [GetOptions]() + +```go +func (x *VerifyBadgeWithOptionsRequest) GetOptions() *VerifyOptions +``` + + + + +### func \(\*VerifyBadgeWithOptionsRequest\) [GetToken]() + +```go +func (x *VerifyBadgeWithOptionsRequest) GetToken() string +``` + + + + +### func \(\*VerifyBadgeWithOptionsRequest\) [ProtoMessage]() + +```go +func (*VerifyBadgeWithOptionsRequest) ProtoMessage() +``` + + + + +### func \(\*VerifyBadgeWithOptionsRequest\) [ProtoReflect]() + +```go +func (x *VerifyBadgeWithOptionsRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*VerifyBadgeWithOptionsRequest\) [Reset]() + +```go +func (x *VerifyBadgeWithOptionsRequest) Reset() +``` + + + + +### func \(\*VerifyBadgeWithOptionsRequest\) [String]() + +```go +func (x *VerifyBadgeWithOptionsRequest) String() string +``` + + + + +## type [VerifyMode]() + +Verification mode + +```go +type VerifyMode int32 +``` + + + +```go +const ( + VerifyMode_VERIFY_MODE_UNSPECIFIED VerifyMode = 0 + VerifyMode_VERIFY_MODE_OFFLINE VerifyMode = 1 // Local verification only + VerifyMode_VERIFY_MODE_ONLINE VerifyMode = 2 // Full online checks + VerifyMode_VERIFY_MODE_HYBRID VerifyMode = 3 // Online if cache stale +) +``` + + +### func \(VerifyMode\) [Descriptor]() + +```go +func (VerifyMode) Descriptor() protoreflect.EnumDescriptor +``` + + + + +### func \(VerifyMode\) [Enum]() + +```go +func (x VerifyMode) Enum() *VerifyMode +``` + + + + +### func \(VerifyMode\) [EnumDescriptor]() + +```go +func (VerifyMode) EnumDescriptor() ([]byte, []int) +``` + +Deprecated: Use VerifyMode.Descriptor instead. + + +### func \(VerifyMode\) [Number]() + +```go +func (x VerifyMode) Number() protoreflect.EnumNumber +``` + + + + +### func \(VerifyMode\) [String]() + +```go +func (x VerifyMode) String() string +``` - -## type [Client]() -Client defines the interface for an A2A protocol client. + +### func \(VerifyMode\) [Type]() ```go -type Client interface { - // Ping checks if the agent is reachable and responsive. - // Returns the latency and any error encountered. - Ping(ctx context.Context) (time.Duration, error) +func (VerifyMode) Type() protoreflect.EnumType +``` - // Close cleans up any resources used by the client. - Close() error + + + +## type [VerifyOptions]() + +Options for badge verification + +```go +type VerifyOptions struct { + Mode VerifyMode `protobuf:"varint,1,opt,name=mode,proto3,enum=capiscio.v1.VerifyMode" json:"mode,omitempty"` + TrustedIssuers []string `protobuf:"bytes,2,rep,name=trusted_issuers,json=trustedIssuers,proto3" json:"trusted_issuers,omitempty"` + Audience string `protobuf:"bytes,3,opt,name=audience,proto3" json:"audience,omitempty"` + SkipRevocation bool `protobuf:"varint,4,opt,name=skip_revocation,json=skipRevocation,proto3" json:"skip_revocation,omitempty"` + SkipAgentStatus bool `protobuf:"varint,5,opt,name=skip_agent_status,json=skipAgentStatus,proto3" json:"skip_agent_status,omitempty"` + ClockToleranceSeconds int64 `protobuf:"varint,6,opt,name=clock_tolerance_seconds,json=clockToleranceSeconds,proto3" json:"clock_tolerance_seconds,omitempty"` + RegistryUrl string `protobuf:"bytes,7,opt,name=registry_url,json=registryUrl,proto3" json:"registry_url,omitempty"` + AcceptSelfSigned bool `protobuf:"varint,8,opt,name=accept_self_signed,json=acceptSelfSigned,proto3" json:"accept_self_signed,omitempty"` // Accept Level 0 did:key badges + // RFC-002 v1.3 §7.5: Staleness fail-closed behavior + FailOpen bool `protobuf:"varint,9,opt,name=fail_open,json=failOpen,proto3" json:"fail_open,omitempty"` // If true, allow verification when cache is stale (default: false) + StaleThresholdSeconds int64 `protobuf:"varint,10,opt,name=stale_threshold_seconds,json=staleThresholdSeconds,proto3" json:"stale_threshold_seconds,omitempty"` // Max staleness before fail-closed (default: 300 = 5 min) + // contains filtered or unexported fields } ``` - -## type [HTTPClient]() + +### func \(\*VerifyOptions\) [Descriptor]() -HTTPClient implements the Client interface for HTTP\+JSON transport. +```go +func (*VerifyOptions) Descriptor() ([]byte, []int) +``` + +Deprecated: Use VerifyOptions.ProtoReflect.Descriptor instead. + + +### func \(\*VerifyOptions\) [GetAcceptSelfSigned]() ```go -type HTTPClient struct { +func (x *VerifyOptions) GetAcceptSelfSigned() bool +``` + + + + +### func \(\*VerifyOptions\) [GetAudience]() + +```go +func (x *VerifyOptions) GetAudience() string +``` + + + + +### func \(\*VerifyOptions\) [GetClockToleranceSeconds]() + +```go +func (x *VerifyOptions) GetClockToleranceSeconds() int64 +``` + + + + +### func \(\*VerifyOptions\) [GetFailOpen]() + +```go +func (x *VerifyOptions) GetFailOpen() bool +``` + + + + +### func \(\*VerifyOptions\) [GetMode]() + +```go +func (x *VerifyOptions) GetMode() VerifyMode +``` + + + + +### func \(\*VerifyOptions\) [GetRegistryUrl]() + +```go +func (x *VerifyOptions) GetRegistryUrl() string +``` + + + + +### func \(\*VerifyOptions\) [GetSkipAgentStatus]() + +```go +func (x *VerifyOptions) GetSkipAgentStatus() bool +``` + + + + +### func \(\*VerifyOptions\) [GetSkipRevocation]() + +```go +func (x *VerifyOptions) GetSkipRevocation() bool +``` + + + + +### func \(\*VerifyOptions\) [GetStaleThresholdSeconds]() + +```go +func (x *VerifyOptions) GetStaleThresholdSeconds() int64 +``` + + + + +### func \(\*VerifyOptions\) [GetTrustedIssuers]() + +```go +func (x *VerifyOptions) GetTrustedIssuers() []string +``` + + + + +### func \(\*VerifyOptions\) [ProtoMessage]() + +```go +func (*VerifyOptions) ProtoMessage() +``` + + + + +### func \(\*VerifyOptions\) [ProtoReflect]() + +```go +func (x *VerifyOptions) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*VerifyOptions\) [Reset]() + +```go +func (x *VerifyOptions) Reset() +``` + + + + +### func \(\*VerifyOptions\) [String]() + +```go +func (x *VerifyOptions) String() string +``` + + + + +## type [VerifyRegistrationRequest]() + +Verify registration request + +```go +type VerifyRegistrationRequest struct { + Did string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"` + VerifyBadge bool `protobuf:"varint,2,opt,name=verify_badge,json=verifyBadge,proto3" json:"verify_badge,omitempty"` + VerifyKeys bool `protobuf:"varint,3,opt,name=verify_keys,json=verifyKeys,proto3" json:"verify_keys,omitempty"` // contains filtered or unexported fields } ``` - -### func [NewHTTPClient]() + +### func \(\*VerifyRegistrationRequest\) [Descriptor]() ```go -func NewHTTPClient(url string) *HTTPClient +func (*VerifyRegistrationRequest) Descriptor() ([]byte, []int) ``` -NewHTTPClient creates a new HTTPClient. +Deprecated: Use VerifyRegistrationRequest.ProtoReflect.Descriptor instead. - -### func \(\*HTTPClient\) [Close]() + +### func \(\*VerifyRegistrationRequest\) [GetDid]() ```go -func (c *HTTPClient) Close() error +func (x *VerifyRegistrationRequest) GetDid() string ``` -Close cleans up resources. - -### func \(\*HTTPClient\) [Ping]() + + +### func \(\*VerifyRegistrationRequest\) [GetVerifyBadge]() ```go -func (c *HTTPClient) Ping(ctx context.Context) (time.Duration, error) +func (x *VerifyRegistrationRequest) GetVerifyBadge() bool ``` -Ping performs a simple GET request to the agent URL to check availability. It attempts to call 'GET /tasks' which is a standard v0.3.0 endpoint. - -## type [JSONRPCClient]() -JSONRPCClient implements the Client interface for JSON\-RPC transport over HTTP. + +### func \(\*VerifyRegistrationRequest\) [GetVerifyKeys]() ```go -type JSONRPCClient struct { +func (x *VerifyRegistrationRequest) GetVerifyKeys() bool +``` + + + + +### func \(\*VerifyRegistrationRequest\) [ProtoMessage]() + +```go +func (*VerifyRegistrationRequest) ProtoMessage() +``` + + + + +### func \(\*VerifyRegistrationRequest\) [ProtoReflect]() + +```go +func (x *VerifyRegistrationRequest) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*VerifyRegistrationRequest\) [Reset]() + +```go +func (x *VerifyRegistrationRequest) Reset() +``` + + + + +### func \(\*VerifyRegistrationRequest\) [String]() + +```go +func (x *VerifyRegistrationRequest) String() string +``` + + + + +## type [VerifyRegistrationResponse]() + +Verify registration response + +```go +type VerifyRegistrationResponse struct { + IsRegistered bool `protobuf:"varint,1,opt,name=is_registered,json=isRegistered,proto3" json:"is_registered,omitempty"` + BadgeValid bool `protobuf:"varint,2,opt,name=badge_valid,json=badgeValid,proto3" json:"badge_valid,omitempty"` + KeysValid bool `protobuf:"varint,3,opt,name=keys_valid,json=keysValid,proto3" json:"keys_valid,omitempty"` + Validation *ValidationResult `protobuf:"bytes,4,opt,name=validation,proto3" json:"validation,omitempty"` + ErrorMessage string `protobuf:"bytes,5,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` // contains filtered or unexported fields } ``` - -### func [NewJSONRPCClient]() + +### func \(\*VerifyRegistrationResponse\) [Descriptor]() ```go -func NewJSONRPCClient(url string) *JSONRPCClient +func (*VerifyRegistrationResponse) Descriptor() ([]byte, []int) ``` -NewJSONRPCClient creates a new JSONRPCClient. +Deprecated: Use VerifyRegistrationResponse.ProtoReflect.Descriptor instead. - -### func \(\*JSONRPCClient\) [Close]() + +### func \(\*VerifyRegistrationResponse\) [GetBadgeValid]() ```go -func (c *JSONRPCClient) Close() error +func (x *VerifyRegistrationResponse) GetBadgeValid() bool ``` -Close cleans up resources. - -### func \(\*JSONRPCClient\) [Ping]() + + +### func \(\*VerifyRegistrationResponse\) [GetErrorMessage]() ```go -func (c *JSONRPCClient) Ping(ctx context.Context) (time.Duration, error) +func (x *VerifyRegistrationResponse) GetErrorMessage() string ``` -Ping sends a standard JSON\-RPC request to check availability. It attempts to call 'tasks/list' which is a standard v0.3.0 method. Even if the method returns an empty list or an error \(e.g. auth\), a valid JSON\-RPC response indicates the agent is alive. -# registry + + +### func \(\*VerifyRegistrationResponse\) [GetIsRegistered]() ```go -import "github.com/capiscio/capiscio-core/pkg/registry" +func (x *VerifyRegistrationResponse) GetIsRegistered() bool ``` -Package registry implements the Trust Registry interface for key retrieval. -## Index -- [type CloudRegistry](<#CloudRegistry>) - - [func NewCloudRegistry\(url string\) \*CloudRegistry](<#NewCloudRegistry>) - - [func \(r \*CloudRegistry\) GetPublicKey\(ctx context.Context, issuer string\) \(crypto.PublicKey, error\)](<#CloudRegistry.GetPublicKey>) - - [func \(r \*CloudRegistry\) IsRevoked\(\_ context.Context, \_ string\) \(bool, error\)](<#CloudRegistry.IsRevoked>) -- [type LocalRegistry](<#LocalRegistry>) - - [func NewLocalRegistry\(path string\) \*LocalRegistry](<#NewLocalRegistry>) - - [func \(r \*LocalRegistry\) GetPublicKey\(\_ context.Context, \_ string\) \(crypto.PublicKey, error\)](<#LocalRegistry.GetPublicKey>) - - [func \(r \*LocalRegistry\) IsRevoked\(\_ context.Context, \_ string\) \(bool, error\)](<#LocalRegistry.IsRevoked>) -- [type Registry](<#Registry>) + +### func \(\*VerifyRegistrationResponse\) [GetKeysValid]() +```go +func (x *VerifyRegistrationResponse) GetKeysValid() bool +``` - -## type [CloudRegistry]() -CloudRegistry implements Registry by fetching keys from a URL. + + +### func \(\*VerifyRegistrationResponse\) [GetValidation]() ```go -type CloudRegistry struct { - RegistryURL string - Client *http.Client +func (x *VerifyRegistrationResponse) GetValidation() *ValidationResult +``` + + + + +### func \(\*VerifyRegistrationResponse\) [ProtoMessage]() + +```go +func (*VerifyRegistrationResponse) ProtoMessage() +``` + + + + +### func \(\*VerifyRegistrationResponse\) [ProtoReflect]() + +```go +func (x *VerifyRegistrationResponse) ProtoReflect() protoreflect.Message +``` + + + + +### func \(\*VerifyRegistrationResponse\) [Reset]() + +```go +func (x *VerifyRegistrationResponse) Reset() +``` + + + + +### func \(\*VerifyRegistrationResponse\) [String]() + +```go +func (x *VerifyRegistrationResponse) String() string +``` + + + + +## type [VerifyRequest]() + +Request to verify + +```go +type VerifyRequest struct { + Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` + Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` + SignatureString string `protobuf:"bytes,3,opt,name=signature_string,json=signatureString,proto3" json:"signature_string,omitempty"` // Alternative to bytes + ExpectedSigner string `protobuf:"bytes,4,opt,name=expected_signer,json=expectedSigner,proto3" json:"expected_signer,omitempty"` // Optional: expected signer DID // contains filtered or unexported fields } ``` - -### func [NewCloudRegistry]() + +### func \(\*VerifyRequest\) [Descriptor]() + +```go +func (*VerifyRequest) Descriptor() ([]byte, []int) +``` + +Deprecated: Use VerifyRequest.ProtoReflect.Descriptor instead. + + +### func \(\*VerifyRequest\) [GetExpectedSigner]() + +```go +func (x *VerifyRequest) GetExpectedSigner() string +``` + + + + +### func \(\*VerifyRequest\) [GetPayload]() + +```go +func (x *VerifyRequest) GetPayload() []byte +``` + + + + +### func \(\*VerifyRequest\) [GetSignature]() + +```go +func (x *VerifyRequest) GetSignature() []byte +``` + + + + +### func \(\*VerifyRequest\) [GetSignatureString]() + +```go +func (x *VerifyRequest) GetSignatureString() string +``` + + + + +### func \(\*VerifyRequest\) [ProtoMessage]() + +```go +func (*VerifyRequest) ProtoMessage() +``` + + + + +### func \(\*VerifyRequest\) [ProtoReflect]() ```go -func NewCloudRegistry(url string) *CloudRegistry +func (x *VerifyRequest) ProtoReflect() protoreflect.Message ``` -NewCloudRegistry creates a new CloudRegistry. - -### func \(\*CloudRegistry\) [GetPublicKey]() + + +### func \(\*VerifyRequest\) [Reset]() ```go -func (r *CloudRegistry) GetPublicKey(ctx context.Context, issuer string) (crypto.PublicKey, error) +func (x *VerifyRequest) Reset() ``` -GetPublicKey fetches the key from the Registry URL. It assumes the URL returns a single JWK for now \(MVP\). - -### func \(\*CloudRegistry\) [IsRevoked]() + + +### func \(\*VerifyRequest\) [String]() ```go -func (r *CloudRegistry) IsRevoked(_ context.Context, _ string) (bool, error) +func (x *VerifyRequest) String() string ``` -IsRevoked checks revocation \(not implemented for MVP\). - -## type [LocalRegistry]() -LocalRegistry implements Registry using a local file. + +## type [VerifyResponse]() + +Response for verification ```go -type LocalRegistry struct { - KeyPath string +type VerifyResponse struct { + Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"` + SignerDid string `protobuf:"bytes,2,opt,name=signer_did,json=signerDid,proto3" json:"signer_did,omitempty"` // Extracted signer DID + KeyId string `protobuf:"bytes,3,opt,name=key_id,json=keyId,proto3" json:"key_id,omitempty"` // Key used for verification + Validation *ValidationResult `protobuf:"bytes,4,opt,name=validation,proto3" json:"validation,omitempty"` + ErrorMessage string `protobuf:"bytes,5,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` // contains filtered or unexported fields } ``` - -### func [NewLocalRegistry]() + +### func \(\*VerifyResponse\) [Descriptor]() ```go -func NewLocalRegistry(path string) *LocalRegistry +func (*VerifyResponse) Descriptor() ([]byte, []int) ``` -NewLocalRegistry creates a new LocalRegistry. +Deprecated: Use VerifyResponse.ProtoReflect.Descriptor instead. - -### func \(\*LocalRegistry\) [GetPublicKey]() + +### func \(\*VerifyResponse\) [GetErrorMessage]() ```go -func (r *LocalRegistry) GetPublicKey(_ context.Context, _ string) (crypto.PublicKey, error) +func (x *VerifyResponse) GetErrorMessage() string ``` -GetPublicKey reads the key from the local file. It ignores the issuer argument for the MVP \(trusts the local key for all\). - -### func \(\*LocalRegistry\) [IsRevoked]() + + +### func \(\*VerifyResponse\) [GetKeyId]() ```go -func (r *LocalRegistry) IsRevoked(_ context.Context, _ string) (bool, error) +func (x *VerifyResponse) GetKeyId() string ``` -IsRevoked checks if the ID is in the local blocklist \(not implemented yet\). - -## type [Registry]() -Registry defines the interface for the CapiscIO Trust Registry. It is responsible for resolving trusted public keys for Issuers. + +### func \(\*VerifyResponse\) [GetSignerDid]() ```go -type Registry interface { - // GetPublicKey fetches the public key for a given Issuer DID/URI. - // Returns the public key and any error encountered. - GetPublicKey(ctx context.Context, issuerDID string) (crypto.PublicKey, error) - - // IsRevoked checks if a specific Badge ID (or Subject) has been revoked. - IsRevoked(ctx context.Context, badgeID string) (bool, error) -} +func (x *VerifyResponse) GetSignerDid() string ``` -# report - -```go -import "github.com/capiscio/capiscio-core/pkg/report" -``` -Package report defines the structures for validation and scoring reports. -## Index + +### func \(\*VerifyResponse\) [GetValid]() -- [type AvailabilityResult](<#AvailabilityResult>) -- [type ValidationIssue](<#ValidationIssue>) -- [type ValidationResult](<#ValidationResult>) - - [func \(r \*ValidationResult\) AddError\(code, message, field string\)](<#ValidationResult.AddError>) - - [func \(r \*ValidationResult\) AddWarning\(code, message, field string\)](<#ValidationResult.AddWarning>) +```go +func (x *VerifyResponse) GetValid() bool +``` - -## type [AvailabilityResult]() -AvailabilityResult contains the results of availability testing. + +### func \(\*VerifyResponse\) [GetValidation]() ```go -type AvailabilityResult struct { - Score float64 `json:"score"` - Tested bool `json:"tested"` - EndpointURL string `json:"endpointUrl,omitempty"` - LatencyMS int64 `json:"latencyMs,omitempty"` - Error string `json:"error,omitempty"` -} +func (x *VerifyResponse) GetValidation() *ValidationResult ``` - -## type [ValidationIssue]() -ValidationIssue represents a specific problem found during validation. + + +### func \(\*VerifyResponse\) [ProtoMessage]() ```go -type ValidationIssue struct { - Code string `json:"code"` - Message string `json:"message"` - Severity string `json:"severity"` // "error", "warning", "info" - Field string `json:"field,omitempty"` -} +func (*VerifyResponse) ProtoMessage() ``` - -## type [ValidationResult]() - -ValidationResult contains the complete results of an Agent Card validation. -```go -type ValidationResult struct { - Success bool `json:"success"` - ComplianceScore float64 `json:"complianceScore"` - TrustScore float64 `json:"trustScore"` - Availability AvailabilityResult `json:"availability"` - Issues []ValidationIssue `json:"issues"` - Signatures *crypto.SignatureVerificationResult `json:"signatures,omitempty"` -} -``` - -### func \(\*ValidationResult\) [AddError]() + +### func \(\*VerifyResponse\) [ProtoReflect]() ```go -func (r *ValidationResult) AddError(code, message, field string) +func (x *VerifyResponse) ProtoReflect() protoreflect.Message ``` -AddError adds an error issue to the result. - -### func \(\*ValidationResult\) [AddWarning]() + + +### func \(\*VerifyResponse\) [Reset]() ```go -func (r *ValidationResult) AddWarning(code, message, field string) +func (x *VerifyResponse) Reset() ``` -AddWarning adds a warning issue to the result. -# scoring + + +### func \(\*VerifyResponse\) [String]() ```go -import "github.com/capiscio/capiscio-core/pkg/scoring" +func (x *VerifyResponse) String() string ``` -Package scoring implements the validation and scoring logic for Agent Cards. - -## Index - -- [type AvailabilityScorer](<#AvailabilityScorer>) - - [func NewAvailabilityScorer\(timeout time.Duration\) \*AvailabilityScorer](<#NewAvailabilityScorer>) - - [func \(s \*AvailabilityScorer\) Score\(ctx context.Context, card \*agentcard.AgentCard\) report.AvailabilityResult](<#AvailabilityScorer.Score>) -- [type ComplianceConfig](<#ComplianceConfig>) -- [type ComplianceScorer](<#ComplianceScorer>) - - [func NewComplianceScorer\(config \*ComplianceConfig\) \*ComplianceScorer](<#NewComplianceScorer>) - - [func \(s \*ComplianceScorer\) Score\(card \*agentcard.AgentCard\) \(float64, \[\]report.ValidationIssue\)](<#ComplianceScorer.Score>) -- [type Engine](<#Engine>) - - [func NewEngine\(config \*EngineConfig\) \*Engine](<#NewEngine>) - - [func \(e \*Engine\) Validate\(ctx context.Context, card \*agentcard.AgentCard, checkAvailability bool\) \(\*report.ValidationResult, error\)](<#Engine.Validate>) -- [type EngineConfig](<#EngineConfig>) - - [func DefaultEngineConfig\(\) \*EngineConfig](<#DefaultEngineConfig>) -- [type TrustScorer](<#TrustScorer>) - - [func NewTrustScorer\(trustedIssuers \[\]string\) \*TrustScorer](<#NewTrustScorer>) - - [func \(s \*TrustScorer\) Score\(sigResult \*crypto.SignatureVerificationResult\) \(float64, \[\]report.ValidationIssue\)](<#TrustScorer.Score>) -- [type URLValidator](<#URLValidator>) - - [func NewURLValidator\(allowPrivateIPs bool\) \*URLValidator](<#NewURLValidator>) - - [func \(v \*URLValidator\) Validate\(rawURL string, fieldName string\) \[\]report.ValidationIssue](<#URLValidator.Validate>) -- [type ValidationMode](<#ValidationMode>) - -## type [AvailabilityScorer]() + +## type [VerifyServerIdentityRequest]() -AvailabilityScorer evaluates the operational status of the agent. +Request to verify server identity ```go -type AvailabilityScorer struct { +type VerifyServerIdentityRequest struct { + + // Disclosed server DID + ServerDid string `protobuf:"bytes,1,opt,name=server_did,json=serverDid,proto3" json:"server_did,omitempty"` + // Server trust badge (JWS), optional + ServerBadge string `protobuf:"bytes,2,opt,name=server_badge,json=serverBadge,proto3" json:"server_badge,omitempty"` + // HTTP origin for origin binding (empty for stdio) + TransportOrigin string `protobuf:"bytes,3,opt,name=transport_origin,json=transportOrigin,proto3" json:"transport_origin,omitempty"` + // URL path for did:web path binding + EndpointPath string `protobuf:"bytes,4,opt,name=endpoint_path,json=endpointPath,proto3" json:"endpoint_path,omitempty"` + // Verification configuration + Config *MCPVerifyConfig `protobuf:"bytes,5,opt,name=config,proto3" json:"config,omitempty"` // contains filtered or unexported fields } ``` - -### func [NewAvailabilityScorer]() + +### func \(\*VerifyServerIdentityRequest\) [Descriptor]() ```go -func NewAvailabilityScorer(timeout time.Duration) *AvailabilityScorer +func (*VerifyServerIdentityRequest) Descriptor() ([]byte, []int) ``` -NewAvailabilityScorer creates a new AvailabilityScorer. +Deprecated: Use VerifyServerIdentityRequest.ProtoReflect.Descriptor instead. - -### func \(\*AvailabilityScorer\) [Score]() + +### func \(\*VerifyServerIdentityRequest\) [GetConfig]() ```go -func (s *AvailabilityScorer) Score(ctx context.Context, card *agentcard.AgentCard) report.AvailabilityResult +func (x *VerifyServerIdentityRequest) GetConfig() *MCPVerifyConfig ``` -Score checks the agent's endpoint and calculates an availability score. - -## type [ComplianceConfig]() -ComplianceConfig holds configuration for the ComplianceScorer. + +### func \(\*VerifyServerIdentityRequest\) [GetEndpointPath]() ```go -type ComplianceConfig struct { - AllowPrivateIPs bool -} +func (x *VerifyServerIdentityRequest) GetEndpointPath() string ``` - -## type [ComplianceScorer]() -ComplianceScorer evaluates how well the Agent Card adheres to the A2A specification. + + +### func \(\*VerifyServerIdentityRequest\) [GetServerBadge]() ```go -type ComplianceScorer struct { - // contains filtered or unexported fields -} +func (x *VerifyServerIdentityRequest) GetServerBadge() string ``` - -### func [NewComplianceScorer]() + + + +### func \(\*VerifyServerIdentityRequest\) [GetServerDid]() ```go -func NewComplianceScorer(config *ComplianceConfig) *ComplianceScorer +func (x *VerifyServerIdentityRequest) GetServerDid() string ``` -NewComplianceScorer creates a new ComplianceScorer. - -### func \(\*ComplianceScorer\) [Score]() + + +### func \(\*VerifyServerIdentityRequest\) [GetTransportOrigin]() ```go -func (s *ComplianceScorer) Score(card *agentcard.AgentCard) (float64, []report.ValidationIssue) +func (x *VerifyServerIdentityRequest) GetTransportOrigin() string ``` -Score calculates the compliance score \(0\-100\) and identifies issues. - -## type [Engine]() -Engine is the main entry point for scoring and validation. + +### func \(\*VerifyServerIdentityRequest\) [ProtoMessage]() ```go -type Engine struct { - // contains filtered or unexported fields -} +func (*VerifyServerIdentityRequest) ProtoMessage() ``` - -### func [NewEngine]() + + + +### func \(\*VerifyServerIdentityRequest\) [ProtoReflect]() ```go -func NewEngine(config *EngineConfig) *Engine +func (x *VerifyServerIdentityRequest) ProtoReflect() protoreflect.Message ``` -NewEngine creates a new scoring Engine with the provided configuration. If config is nil, default configuration is used. - -### func \(\*Engine\) [Validate]() + + +### func \(\*VerifyServerIdentityRequest\) [Reset]() ```go -func (e *Engine) Validate(ctx context.Context, card *agentcard.AgentCard, checkAvailability bool) (*report.ValidationResult, error) +func (x *VerifyServerIdentityRequest) Reset() ``` -Validate performs a full validation of the Agent Card. - -## type [EngineConfig]() -EngineConfig holds configuration for the scoring Engine. + +### func \(\*VerifyServerIdentityRequest\) [String]() ```go -type EngineConfig struct { - // TrustedIssuers is a list of trusted JWKS URIs or Issuer IDs. - // If empty, all valid signatures are considered "trusted" (low security mode). - TrustedIssuers []string +func (x *VerifyServerIdentityRequest) String() string +``` - // JWKSCacheTTL is the time-to-live for cached JWKS. Default: 1 hour. - JWKSCacheTTL time.Duration - // HTTPTimeout is the timeout for availability checks. Default: 5 seconds. - HTTPTimeout time.Duration - // Mode determines the validation strictness. Default: ModeProgressive. - Mode ValidationMode + +## type [VerifyServerIdentityResponse]() - // SkipSignatureVerification disables JWS signature verification. - SkipSignatureVerification bool +Response from server identity verification - // SchemaOnly skips logic and network checks, validating only the JSON structure. - SchemaOnly bool +```go +type VerifyServerIdentityResponse struct { + + // Server classification state (RFC-007 §5.2) + State MCPServerState `protobuf:"varint,1,opt,name=state,proto3,enum=capiscio.v1.MCPServerState" json:"state,omitempty"` + // Trust level (only set for VERIFIED_PRINCIPAL) + TrustLevel int32 `protobuf:"varint,2,opt,name=trust_level,json=trustLevel,proto3" json:"trust_level,omitempty"` + // Confirmed server DID + ServerDid string `protobuf:"bytes,3,opt,name=server_did,json=serverDid,proto3" json:"server_did,omitempty"` + // Badge ID if present + BadgeJti string `protobuf:"bytes,4,opt,name=badge_jti,json=badgeJti,proto3" json:"badge_jti,omitempty"` + // Error code (only set on verification failure) + ErrorCode MCPServerErrorCode `protobuf:"varint,5,opt,name=error_code,json=errorCode,proto3,enum=capiscio.v1.MCPServerErrorCode" json:"error_code,omitempty"` + // Human-readable error detail + ErrorDetail string `protobuf:"bytes,6,opt,name=error_detail,json=errorDetail,proto3" json:"error_detail,omitempty"` + // contains filtered or unexported fields +} +``` - // RegistryReady enables additional checks required for registry submission. - RegistryReady bool + +### func \(\*VerifyServerIdentityResponse\) [Descriptor]() - // AllowPrivateIPs allows URLs to resolve to private IP addresses. - AllowPrivateIPs bool -} +```go +func (*VerifyServerIdentityResponse) Descriptor() ([]byte, []int) ``` - -### func [DefaultEngineConfig]() +Deprecated: Use VerifyServerIdentityResponse.ProtoReflect.Descriptor instead. + + +### func \(\*VerifyServerIdentityResponse\) [GetBadgeJti]() ```go -func DefaultEngineConfig() *EngineConfig +func (x *VerifyServerIdentityResponse) GetBadgeJti() string ``` -DefaultEngineConfig returns a default configuration. - -## type [TrustScorer]() -TrustScorer evaluates the trustworthiness of the Agent Card. + +### func \(\*VerifyServerIdentityResponse\) [GetErrorCode]() ```go -type TrustScorer struct { - // contains filtered or unexported fields -} +func (x *VerifyServerIdentityResponse) GetErrorCode() MCPServerErrorCode ``` - -### func [NewTrustScorer]() + + + +### func \(\*VerifyServerIdentityResponse\) [GetErrorDetail]() ```go -func NewTrustScorer(trustedIssuers []string) *TrustScorer +func (x *VerifyServerIdentityResponse) GetErrorDetail() string ``` -NewTrustScorer creates a new TrustScorer with optional trusted issuers. - -### func \(\*TrustScorer\) [Score]() + + +### func \(\*VerifyServerIdentityResponse\) [GetServerDid]() ```go -func (s *TrustScorer) Score(sigResult *crypto.SignatureVerificationResult) (float64, []report.ValidationIssue) +func (x *VerifyServerIdentityResponse) GetServerDid() string ``` -Score calculates the trust score \(0\-100\) based on signatures and other factors. - -## type [URLValidator]() -URLValidator validates URLs for security and compliance. + +### func \(\*VerifyServerIdentityResponse\) [GetState]() ```go -type URLValidator struct { - AllowPrivateIPs bool -} +func (x *VerifyServerIdentityResponse) GetState() MCPServerState ``` - -### func [NewURLValidator]() + + + +### func \(\*VerifyServerIdentityResponse\) [GetTrustLevel]() ```go -func NewURLValidator(allowPrivateIPs bool) *URLValidator +func (x *VerifyServerIdentityResponse) GetTrustLevel() int32 ``` -NewURLValidator creates a new URLValidator. - -### func \(\*URLValidator\) [Validate]() + + +### func \(\*VerifyServerIdentityResponse\) [ProtoMessage]() ```go -func (v *URLValidator) Validate(rawURL string, fieldName string) []report.ValidationIssue +func (*VerifyServerIdentityResponse) ProtoMessage() ``` -Validate checks if a URL is valid and secure. - -## type [ValidationMode]() -ValidationMode determines the strictness of the validation. + +### func \(\*VerifyServerIdentityResponse\) [ProtoReflect]() ```go -type ValidationMode string +func (x *VerifyServerIdentityResponse) ProtoReflect() protoreflect.Message ``` - + + + +### func \(\*VerifyServerIdentityResponse\) [Reset]() ```go -const ( - // ModeProgressive is the default mode. Standard checks, allows some warnings. - ModeProgressive ValidationMode = "progressive" - // ModeStrict fails on ANY warning or error. - ModeStrict ValidationMode = "strict" -) +func (x *VerifyServerIdentityResponse) Reset() ``` ---- + + + +### func \(\*VerifyServerIdentityResponse\) [String]() + +```go +func (x *VerifyServerIdentityResponse) String() string +``` + + Generated by [gomarkdoc]() diff --git a/docs/reference/grpc.md b/docs/reference/grpc.md index d402337..71092e9 100644 --- a/docs/reference/grpc.md +++ b/docs/reference/grpc.md @@ -304,6 +304,46 @@ result = client.mcp.verify_server_identity( } ``` +### EvaluatePolicyDecision + +Evaluate an authorization decision via the PDP integration (RFC-005). The server-side PEP calls this RPC to enforce policy decisions from an external PDP. + +```protobuf +rpc EvaluatePolicyDecision(PolicyDecisionRequest) returns (PolicyDecisionResponse); +``` + +**Request:** + +| Field | Type | Description | +|-------|------|-------------| +| `subject` | `PolicySubject` | Badge-derived identity (`did`, `badge_jti`, `ial`, `trust_level`, `badge_exp`) | +| `action` | `PolicyAction` | Operation being attempted (`operation`, `capability_class`) | +| `resource` | `PolicyResource` | Target resource (`identifier`) | +| `config` | `PolicyConfig` | PEP/PDP configuration (`pdp_endpoint`, `pdp_timeout_ms`, `enforcement_mode`, `pep_id`, `workspace`, `breakglass_public_key`) | +| `breakglass_token` | `string` | Optional break-glass JWS for emergency override | + +**Response:** + +| Field | Type | Description | +|-------|------|-------------| +| `decision` | `string` | `ALLOW`, `DENY`, or `ALLOW_OBSERVE` | +| `decision_id` | `string` | Unique evaluation ID | +| `reason` | `string` | Human-readable reason | +| `ttl` | `int32` | Cache TTL in seconds | +| `obligations` | `MCPObligation[]` | Obligations to enforce (`type`, `params_json`) | +| `enforcement_mode` | `string` | Mode that was applied | +| `cache_hit` | `bool` | Whether the decision came from cache | +| `breakglass_override` | `bool` | Whether a break-glass override was applied | +| `breakglass_jti` | `string` | Break-glass token JTI (if override) | +| `error_code` | `string` | `pdp_unavailable`, `pdp_timeout`, `pdp_invalid_response`, or empty | +| `pdp_latency_ms` | `int64` | PDP query latency | +| `txn_id` | `string` | Transaction ID | + +!!! note "Error Handling" + This RPC does not return gRPC errors for PDP unavailability. All outcomes (including PDP failures) are encoded in the response fields so SDKs can handle them uniformly. + +--- + ### ParseServerIdentity Extract server identity from HTTP headers or JSON-RPC `_meta`. diff --git a/docs/reference/sdk-python/index.md b/docs/reference/sdk-python/index.md index 653db5b..4cdf4c2 100644 --- a/docs/reference/sdk-python/index.md +++ b/docs/reference/sdk-python/index.md @@ -62,6 +62,15 @@ from capiscio_sdk import ValidationResult, ValidationIssue, ValidationSeverity # MCP API (Model Context Protocol security) from capiscio_sdk._rpc.client import CapiscioRPCClient # Access MCP via: client.mcp.evaluate_tool_access(...) + +# PIP Types (Policy enforcement - RFC-005) +from capiscio_sdk.pip import ( + PIPRequest, PIPResponse, + SubjectAttributes, ActionAttributes, + ResourceAttributes, ContextAttributes, + EnvironmentAttributes, Obligation, + EnforcementMode, +) ``` --- @@ -132,6 +141,15 @@ from capiscio_sdk._rpc.client import CapiscioRPCClient [:octicons-arrow-right-24: MCP API](mcp.md) +- :material-shield-check: **PIP Types** + + --- + + Policy Information Point request/response types for PDP integration. + Enforcement modes, obligations, and decision handling (RFC-005). + + [:octicons-arrow-right-24: PIP Types](pip.md) + --- diff --git a/docs/reference/sdk-python/pip.md b/docs/reference/sdk-python/pip.md new file mode 100644 index 0000000..8b6768c --- /dev/null +++ b/docs/reference/sdk-python/pip.md @@ -0,0 +1,138 @@ +--- +title: PIP Types +description: Policy Information Point request/response types for PDP integration +--- + +# PIP Types + +Policy Information Point (PIP) types for building PDP integration requests and interpreting responses. Implements RFC-005: Policy Definition, Distribution and Enforcement. + +!!! info "RFC-005 Implementation" + This API implements the PIP request/response format from RFC-005 §5–§7. + +--- + +## Quick Start + +```python +from capiscio_sdk.pip import ( + PIPRequest, PIPResponse, + SubjectAttributes, ActionAttributes, + ResourceAttributes, ContextAttributes, + EnforcementMode, Obligation, +) + +# Build a policy decision request +request = PIPRequest( + subject=SubjectAttributes( + did="did:web:example.com:agents:bot", + badge_jti="badge-session-id", + ial="1", + trust_level="DV", + ), + action=ActionAttributes(operation="POST /api/v1/badges"), + resource=ResourceAttributes(identifier="/api/v1/badges"), + context=ContextAttributes( + txn_id="txn-uuid", + enforcement_mode=EnforcementMode.GUARD, + ), +) + +# Serialize to dict for your PDP client +payload = request.to_dict() + +# Parse PDP response +response = PIPResponse.from_dict({ + "decision": "ALLOW", + "decision_id": "eval-uuid", + "obligations": [], + "ttl": 300, +}) + +if response.is_allow: + print("Access granted") +``` + +--- + +## EnforcementMode + +::: capiscio_sdk.pip.EnforcementMode + options: + show_root_heading: true + members_order: source + +--- + +## Request Types + +### PIPRequest + +::: capiscio_sdk.pip.PIPRequest + options: + show_root_heading: true + members_order: source + +### SubjectAttributes + +::: capiscio_sdk.pip.SubjectAttributes + options: + show_root_heading: true + members_order: source + +### ActionAttributes + +::: capiscio_sdk.pip.ActionAttributes + options: + show_root_heading: true + members_order: source + +### ResourceAttributes + +::: capiscio_sdk.pip.ResourceAttributes + options: + show_root_heading: true + members_order: source + +### ContextAttributes + +::: capiscio_sdk.pip.ContextAttributes + options: + show_root_heading: true + members_order: source + +### EnvironmentAttributes + +::: capiscio_sdk.pip.EnvironmentAttributes + options: + show_root_heading: true + members_order: source + +--- + +## Response Types + +### PIPResponse + +::: capiscio_sdk.pip.PIPResponse + options: + show_root_heading: true + members_order: source + +### Obligation + +::: capiscio_sdk.pip.Obligation + options: + show_root_heading: true + members_order: source + +--- + +## Constants + +| Constant | Value | Description | +|----------|-------|-------------| +| `PIP_VERSION` | `"capiscio.pip.v1"` | Protocol version string | +| `DECISION_ALLOW` | `"ALLOW"` | PDP authorized the request | +| `DECISION_DENY` | `"DENY"` | PDP rejected the request | +| `DECISION_OBSERVE` | `"ALLOW_OBSERVE"` | PEP-only: PDP unavailable in EM-OBSERVE mode | diff --git a/mkdocs.yml b/mkdocs.yml index 0b0ae79..f25aed7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -221,6 +221,7 @@ nav: - Dev Mode: how-to/security/dev-mode.md - Key Rotation: how-to/security/key-rotation.md - Trust Store: how-to/security/trust-store.md + - Policy Enforcement: how-to/security/policy-enforcement.md - MCP Security: - Protect MCP Tools: mcp-guard/guides/server-side.md - Verify MCP Servers: mcp-guard/guides/client-side.md @@ -252,6 +253,7 @@ nav: - MCP: reference/sdk-python/mcp.md - Types: reference/sdk-python/types.md - Errors: reference/sdk-python/errors.md + - PIP Types: reference/sdk-python/pip.md - MCP Guard: '!include ../capiscio-mcp-python/mkdocs.yml' - Server API: - reference/server/index.md