diff --git a/.gitignore b/.gitignore index 1d544be..f6dc0be 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,7 @@ yarn-error.log* # compiled example binaries with-go/with-go + +# compiled example binaries +with-grpc/with-grpc +with-microservices-go/bin/ diff --git a/with-agent-delegation/demo.mjs b/with-agent-delegation/demo.mjs index ef04d5f..7796095 100644 --- a/with-agent-delegation/demo.mjs +++ b/with-agent-delegation/demo.mjs @@ -159,8 +159,14 @@ async function getUserToken() { try { return await signup(); } catch {} + // _delete_user takes an id, not an email: a phone-only signup has no email, + // so email was never an identifier every account has. Look the id up first. + const { _user: stale } = await adminGql( + `query ($params: GetUserRequest!) { _user(params: $params) { id } }`, + { params: { email: USER_EMAIL } } + ); await adminGql(`mutation ($params: DeleteUserRequest!) { _delete_user(params: $params) { message } }`, { - params: { email: USER_EMAIL }, + params: { id: stale.id }, }); return signup(); } diff --git a/with-agent-permissions/README.md b/with-agent-permissions/README.md index e13c478..622f870 100644 --- a/with-agent-permissions/README.md +++ b/with-agent-permissions/README.md @@ -67,8 +67,8 @@ non-zero if any of them does not hold. ## Turning it on: declare `type agent` -**There is no flag.** Declaring `type agent` in your authorization model *is* -the opt-in: +**There is no enabling flag.** Declaring `type agent` in your authorization +model *is* the opt-in: ```dsl model @@ -90,9 +90,13 @@ deny *every* delegated request: a total authorization outage rather than a graceful degradation. Auto-detection makes that state unreachable. Section 8 of the demo shows the other side of that trade: rewrite the model -without `type agent` and the same agent immediately inherits Alice's full -authority again. Deployments that never opt in keep their existing behaviour -byte-for-byte, and that state is counted as +without `type agent` and every delegated check is **denied**, because the +agent half of `perms(agent) ∩ perms(user)` cannot be evaluated and a check +that cannot be evaluated is not a check that passes. Authorizing as the user +alone would hand the agent Alice's full authority — the Confused Deputy this +feature exists to prevent — so it is not the default. Deployments migrating +from 2.3.x can set `--fga-allow-unconstrained-agents` to restore exactly that +old behaviour; either way the state is counted as `authorizer_fga_delegated_checks_total{outcome="not_enforced"}` so you can alert on agent traffic arriving unconstrained. diff --git a/with-agent-permissions/demo.mjs b/with-agent-permissions/demo.mjs index ec36e66..13059d3 100644 --- a/with-agent-permissions/demo.mjs +++ b/with-agent-permissions/demo.mjs @@ -44,11 +44,12 @@ const DOC_PLAN = `document:q4-plan-${runId}`; const DOC_PAYROLL = `document:payroll-${runId}`; const DOC_ROADMAP = `document:roadmap-${runId}`; -// Declaring `type agent` IS the opt-in — there is no flag. The feature is -// meaningless without a model that can express agent grants, and checking -// `agent:x` against a model with no agent type ERRORS in OpenFGA rather than -// returning false, so a flag switched on against an unprepared model would deny -// every delegated request. Auto-detection makes that state unreachable. +// Declaring `type agent` IS the opt-in — there is no enabling flag. The +// feature is meaningless without a model that can express agent grants, and +// checking `agent:x` against a model with no agent type ERRORS in OpenFGA +// rather than returning false, so a flag switched on against an unprepared +// model would deny every delegated request. Auto-detection makes that state +// unreachable. const MODEL_WITH_AGENT = `model schema 1.1 type user @@ -59,8 +60,8 @@ type document define can_view: viewer `; -// The same model WITHOUT the agent type: the "operator has not opted in" state, -// used by the final section. +// The same model WITHOUT the agent type: the "operator has not opted in" +// state, used by the final section. const MODEL_WITHOUT_AGENT = `model schema 1.1 type user @@ -154,6 +155,21 @@ function expect(label, actual, wanted) { console.log(` ${ok ? "✓" : "✗"} ${label}${ok ? "" : ` (got ${JSON.stringify(actual)}, want ${JSON.stringify(wanted)})`}`); } +// Some denials are a rejected request rather than `allowed: false` — a check +// the server refuses to evaluate at all returns an error, and swallowing that +// would let a broken deployment read as a passing one. +async function expectDenied(label, call) { + let outcome; + try { + outcome = `allowed: ${JSON.stringify(await call())}`; + } catch (err) { + console.log(` ✓ ${label} (${err.message})`); + return; + } + failures++; + console.log(` ✗ ${label} (got ${outcome}, want a denial)`); +} + // Since 2.4.0 MFA is on by default, so signup/login enrol nothing but OFFER an // MFA setup: no access token, and the message "Proceed to mfa setup", until the // user either enrols a factor or explicitly declines. This demo is about @@ -200,8 +216,14 @@ async function getUserToken() { try { return await signup(); } catch {} + // _delete_user takes an id, not an email: a phone-only signup has no email, + // so email was never an identifier every account has. Look the id up first. + const { _user: stale } = await adminGql( + `query ($params: GetUserRequest!) { _user(params: $params) { id } }`, + { params: { email: USER_EMAIL } } + ); await adminGql(`mutation ($params: DeleteUserRequest!) { _delete_user(params: $params) { message } }`, { - params: { email: USER_EMAIL }, + params: { id: stale.id }, }); return signup(); } @@ -319,20 +341,23 @@ async function main() { expect("calendar-agent -> q4-plan is now denied", await check(delegated, DOC_PLAN), false); expect("Alice -> q4-plan still allowed", await check(userToken, DOC_PLAN), true); - console.log(`\n== 8. The opt-in: a model with no \`type agent\` ==`); + console.log(`\n== 8. Not opted in: a model with no \`type agent\` ==`); // Tuples survive a model rewrite — only the schema changed, so Alice keeps // her payroll grant and the agent keeps the tuples it still has. The ONLY - // difference is that the model can no longer express an agent subject. + // difference is that the model can no longer express an agent subject, so + // the agent half of the intersection cannot be evaluated at all. await writeModel(MODEL_WITHOUT_AGENT); - expect( - "payroll — the agent now inherits Alice's FULL authority -> allowed", - await check(delegated, DOC_PAYROLL), - true + await expectDenied( + "payroll — the agent half cannot be evaluated -> the whole check is denied", + () => check(delegated, DOC_PAYROLL) ); - console.log(` This is the documented compatibility path, not a bug: deployments that`); - console.log(` have not opted in keep their existing behaviour byte-for-byte. It is`); - console.log(` counted as authorizer_fga_delegated_checks_total{outcome="not_enforced"}`); - console.log(` so you can alert on agent traffic arriving unconstrained.`); + console.log(` Fail closed: a check that cannot be evaluated is not a check that passes.`); + console.log(` Authorizing as the user alone would hand the agent Alice's full authority,`); + console.log(` which is exactly the Confused Deputy this feature exists to prevent.`); + console.log(` Deployments migrating from 2.3.x can set --fga-allow-unconstrained-agents`); + console.log(` to restore that old behaviour; either way it is counted as`); + console.log(` authorizer_fga_delegated_checks_total{outcome="not_enforced"}, so you can`); + console.log(` alert on agent traffic arriving unconstrained.`); // Leave the store as we found it for the next run. await writeModel(MODEL_WITH_AGENT); diff --git a/with-agent-permissions/mcp-agent.mjs b/with-agent-permissions/mcp-agent.mjs index cc4cfa5..c2a4462 100644 --- a/with-agent-permissions/mcp-agent.mjs +++ b/with-agent-permissions/mcp-agent.mjs @@ -25,7 +25,10 @@ import path from "node:path"; import readline from "node:readline"; const HERE = path.dirname(fileURLToPath(import.meta.url)); -const SERVER_DIR = path.resolve(HERE, "../../authorizer"); +// Override to build a specific checkout, e.g. a release worktree. Must be the +// same checkout run-server.sh started: `authorizer mcp` is a second process +// against the same database, not a client of the running one. +const SERVER_DIR = process.env.AUTHORIZER_SERVER_DIR ?? path.resolve(HERE, "../../authorizer"); const DB_PATH = path.join(HERE, ".agent-demo.db"); // A DELEGATED TOKEN LIVES 5 MINUTES. `go run` recompiles the whole server on // every spawn, which can eat most of that window before the first tool call — diff --git a/with-agent-permissions/run-server.sh b/with-agent-permissions/run-server.sh index 6401736..47d3cd2 100755 --- a/with-agent-permissions/run-server.sh +++ b/with-agent-permissions/run-server.sh @@ -14,7 +14,9 @@ set -euo pipefail DIR="$(cd "$(dirname "$0")" && pwd)" -SERVER_DIR="$DIR/../../authorizer" +# Override to run a specific checkout, e.g. a release worktree: +# SERVER_DIR=/path/to/authorizer@2.4.0-rc.18 ./run-server.sh +SERVER_DIR="${SERVER_DIR:-$DIR/../../authorizer}" # Override when :8080 is taken, e.g. PORT=8098 ./run-server.sh # (then run the demos with AUTHORIZER_URL=http://localhost:8098) diff --git a/with-agents-python/README.md b/with-agents-python/README.md index 8337419..6723b24 100644 --- a/with-agents-python/README.md +++ b/with-agents-python/README.md @@ -21,17 +21,12 @@ upstream hop dropped (`invalid_scope`), and delegated tokens live 5 minutes. ## Quickstart Requires a server built from main (`make dev` in the server repo → :8080) -and the **unreleased** Python SDK from local main, checked out next to this -repo. `authorizer-py` 0.3.0rc3 is on PyPI and does have token exchange and -`skip_mfa_setup`, but not the loopback cookie jar that the MFA offer needs: -the server marks the `mfa_session` cookie `Secure` even over plain http, so -against a local server the released SDK drops it and `skip_mfa_setup` fails -with `invalid session`. Switch to `pip install --pre authorizer-py` once -that fix ships: +and the Authorizer Python SDK (token-exchange support ships in +`authorizer-py>=0.3.0rc4`): ```bash python3 -m venv .venv -.venv/bin/pip install -e ../../authorizer-python +.venv/bin/pip install -r requirements.txt export AUTHORIZER_CLIENT_ID=kbyuFDidLLm280LIwVFiazOqjO3ty8KH # make-dev default export AUTHORIZER_ADMIN_SECRET=admin diff --git a/with-agents-python/demo.py b/with-agents-python/demo.py index e004c0b..1712524 100644 --- a/with-agents-python/demo.py +++ b/with-agents-python/demo.py @@ -9,13 +9,10 @@ python demo.py --async # same flow on the async client Requires an Authorizer server built from main (`make dev` in the server -repo) and the UNRELEASED Python SDK from local main: +repo) and the Authorizer Python SDK (token exchange ships in +`authorizer-py>=0.3.0rc4`): - pip install -e ../../authorizer-python - -(The released authorizer-py 0.3.0rc3 has token exchange and skip_mfa_setup, -but not the loopback cookie jar the MFA offer needs against a local http -server. Switch to `pip install --pre authorizer-py` once that ships.) + pip install -r requirements.txt """ from __future__ import annotations @@ -85,6 +82,17 @@ def claims(jwt: str) -> dict: """ +def mfa_cookie(client) -> dict[str, str]: + """Header replaying the MFA session cookie signup set on this client. + + skip_mfa_setup is identified by that cookie plus the email. The server + marks it Secure (--app-cookie-secure defaults to true), so httpx keeps it + in its jar but refuses to replay it over plain http and it has to be sent + by hand. A deployment on https needs none of this. + """ + return {"Cookie": f"mfa_session={client._http.cookies.get('mfa_session')}"} + + def print_act_chain(token: str, label: str) -> None: c = claims(token) print(f"\n== {label} ==") @@ -115,7 +123,7 @@ def run_sync() -> None: ) ) if user.access_token is None: # MFA setup offered — see MFA_OFFER_NOTE - client.skip_mfa_setup(SkipMfaSetupRequest(email=email)) + client.skip_mfa_setup(SkipMfaSetupRequest(email=email), mfa_cookie(client)) user = client.login( LoginRequest(email=email, password=PASSWORD, scope=USER_SCOPE) ) @@ -205,7 +213,9 @@ async def run_async() -> None: ) ) if user.access_token is None: # MFA setup offered — see MFA_OFFER_NOTE - await client.skip_mfa_setup(SkipMfaSetupRequest(email=email)) + await client.skip_mfa_setup( + SkipMfaSetupRequest(email=email), mfa_cookie(client) + ) user = await client.login( LoginRequest(email=email, password=PASSWORD, scope=scope) ) diff --git a/with-agents-python/requirements.txt b/with-agents-python/requirements.txt new file mode 100644 index 0000000..7e88285 --- /dev/null +++ b/with-agents-python/requirements.txt @@ -0,0 +1,3 @@ +# Official Authorizer Python SDK: https://pypi.org/project/authorizer-py/ +# Token-exchange (RFC 8693) support ships in >=0.3.0rc4. +authorizer-py>=0.3.0rc4 diff --git a/with-auth-recipes/2-totp-mfa/totp-mfa.mjs b/with-auth-recipes/2-totp-mfa/totp-mfa.mjs index 041cde1..041301d 100644 --- a/with-auth-recipes/2-totp-mfa/totp-mfa.mjs +++ b/with-auth-recipes/2-totp-mfa/totp-mfa.mjs @@ -29,6 +29,20 @@ const password = 'Obviously-Fake-Passw0rd!'; const totpFor = (secret) => new OTPAuth.TOTP({ secret, algorithm: 'SHA1', digits: 6, period: 30 }); +// RFC 6238 §5.2: a code the server has already accepted must not be accepted +// a second time, and Authorizer enforces that. Enrollment and the login +// challenge below happen seconds apart, well inside one 30s step, so the +// second one has to wait for the counter to roll over — a real user typing +// from their phone hits the same rule if they reuse a code. +async function freshCode(secret, alreadyUsed) { + const totp = totpFor(secret); + for (;;) { + const code = totp.generate(); + if (code !== alreadyUsed) return code; + await new Promise((r) => setTimeout(r, 1000)); + } +} + const AUTH_RESPONSE = ` message access_token @@ -65,11 +79,12 @@ console.log('recovery codes:', enroll.authenticator_recovery_codes.length); // 3. Complete enrollment: generate the current code and verify it. // verify_otp requires the mfa_session cookie set in the previous step. +const enrollmentCode = totpFor(enroll.authenticator_secret).generate(); const { data: enrolled, setCookies: sessionCookies } = await gql( `mutation ($params: VerifyOTPRequest!) { verify_otp(params: $params) { ${AUTH_RESPONSE} } }`, - { params: { email, otp: totpFor(enroll.authenticator_secret).generate(), is_totp: true } }, + { params: { email, otp: enrollmentCode, is_totp: true } }, { Cookie: cookieHeader(mfaCookies1) } ); console.log('verify_otp (enrollment):', enrolled.verify_otp.message); @@ -88,7 +103,13 @@ const { data: mfaDone } = await gql( `mutation ($params: VerifyOTPRequest!) { verify_otp(params: $params) { ${AUTH_RESPONSE} } }`, - { params: { email, otp: totpFor(enroll.authenticator_secret).generate(), is_totp: true } }, + { + params: { + email, + otp: await freshCode(enroll.authenticator_secret, enrollmentCode), + is_totp: true, + }, + }, { Cookie: cookieHeader(mfaCookies2) } ); const session = mfaDone.verify_otp; diff --git a/with-auth-recipes/run-server.sh b/with-auth-recipes/run-server.sh index 9a8c3fb..0321403 100755 --- a/with-auth-recipes/run-server.sh +++ b/with-auth-recipes/run-server.sh @@ -8,7 +8,9 @@ set -euo pipefail DIR="$(cd "$(dirname "$0")" && pwd)" -SERVER_DIR="$DIR/../../authorizer" +# Override to run a specific checkout, e.g. a release worktree: +# SERVER_DIR=/path/to/authorizer@2.4.0-rc.18 ./run-server.sh +SERVER_DIR="${SERVER_DIR:-$DIR/../../authorizer}" # Override when :8080 is taken, e.g. PORT=8098 ./run-server.sh # (recipe scripts then need AUTHORIZER_URL=http://localhost:8098) diff --git a/with-express-js/package-lock.json b/with-express-js/package-lock.json index aa193c0..262baa4 100644 --- a/with-express-js/package-lock.json +++ b/with-express-js/package-lock.json @@ -9,14 +9,14 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", "express": "^4.18.2" } }, "node_modules/@authorizerdev/authorizer-js": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-3.3.0.tgz", - "integrity": "sha512-sxVroZPffB9IvmCSEE9ZFXplO6AyCfKsUjazUL/G7Cq4WN1diV4K376hY6UbFzSHcZ1K4UTvD1uzqZI2Pa1bwA==", + "version": "4.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-4.0.0-rc.0.tgz", + "integrity": "sha512-BVxzi9Dm4J5O6kDvvS18BrZwEaxkff2wKqW29cyMsj5s93T+OA+/bYaOlXOwLtPsabuoGUKONp+ZX05JksZ3UA==", "license": "MIT", "dependencies": { "cross-fetch": "^4.1.0" @@ -658,9 +658,9 @@ }, "dependencies": { "@authorizerdev/authorizer-js": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-3.3.0.tgz", - "integrity": "sha512-sxVroZPffB9IvmCSEE9ZFXplO6AyCfKsUjazUL/G7Cq4WN1diV4K376hY6UbFzSHcZ1K4UTvD1uzqZI2Pa1bwA==", + "version": "4.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-4.0.0-rc.0.tgz", + "integrity": "sha512-BVxzi9Dm4J5O6kDvvS18BrZwEaxkff2wKqW29cyMsj5s93T+OA+/bYaOlXOwLtPsabuoGUKONp+ZX05JksZ3UA==", "requires": { "cross-fetch": "^4.1.0" } diff --git a/with-express-js/package.json b/with-express-js/package.json index 5bf1446..bdd97ee 100644 --- a/with-express-js/package.json +++ b/with-express-js/package.json @@ -11,7 +11,7 @@ "author": "Lakhan Samani", "license": "ISC", "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", "express": "^4.18.2" } } diff --git a/with-fga-advanced/api.mjs b/with-fga-advanced/api.mjs index 3bde13f..27b39e0 100644 --- a/with-fga-advanced/api.mjs +++ b/with-fga-advanced/api.mjs @@ -68,8 +68,14 @@ export async function loginOrSignup(name) { try { return await signup(); } catch {} + // _delete_user takes an id, not an email: a phone-only signup has no email, + // so email was never an identifier every account has. Look the id up first. + const { _user: stale } = await adminGql( + `query ($p: GetUserRequest!) { _user(params: $p) { id } }`, + { p: { email } } + ); await adminGql(`mutation ($p: DeleteUserRequest!) { _delete_user(params: $p) { message } }`, { - p: { email }, + p: { id: stale.id }, }); return signup(); } diff --git a/with-gatsbyjs/package-lock.json b/with-gatsbyjs/package-lock.json index 13c9334..fd2e265 100644 --- a/with-gatsbyjs/package-lock.json +++ b/with-gatsbyjs/package-lock.json @@ -8,7 +8,7 @@ "name": "authorizer-gatsby-demo", "version": "1.0.0", "dependencies": { - "@authorizerdev/authorizer-react": "^2.0.7", + "@authorizerdev/authorizer-react": "^2.2.0-rc.7", "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.22", "babel-plugin-styled-components": "^2.0.2", @@ -53,9 +53,9 @@ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" }, "node_modules/@authorizerdev/authorizer-js": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-3.0.4.tgz", - "integrity": "sha512-vkXg1inxC6U2eLra/EQmhTVKzdlpCF4+a93tOfUgSyISYnE8v9np54OAOrs//4aTVOwFTIhahSTvpERKj2NZAQ==", + "version": "4.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-4.0.0-rc.0.tgz", + "integrity": "sha512-BVxzi9Dm4J5O6kDvvS18BrZwEaxkff2wKqW29cyMsj5s93T+OA+/bYaOlXOwLtPsabuoGUKONp+ZX05JksZ3UA==", "license": "MIT", "dependencies": { "cross-fetch": "^4.1.0" @@ -77,13 +77,12 @@ } }, "node_modules/@authorizerdev/authorizer-react": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-2.0.7.tgz", - "integrity": "sha512-+qBrbdE6VyljOge1Ad2AmVIpoheymlLsMxCZHW0hnCeKf0R0wJz3MvoKBiaHAcRF/Bf8Wc6+NBCctAnzXjiwMg==", + "version": "2.2.0-rc.7", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-2.2.0-rc.7.tgz", + "integrity": "sha512-45W/6vIyGCSSsGo847tc/RWr8ApuqLknuxWQW0IiupKNZWDMqsP8Vao2QR28qe8mRAXgzETfca5Hz6d3Yn4wEA==", "license": "MIT", "dependencies": { - "@authorizerdev/authorizer-js": "3.0.4", - "@storybook/preset-scss": "^1.0.3", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", "validator": "^13.11.0" }, "engines": { @@ -2633,17 +2632,6 @@ "node": ">=8" } }, - "node_modules/@storybook/preset-scss": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@storybook/preset-scss/-/preset-scss-1.0.3.tgz", - "integrity": "sha512-o9Iz6wxPeNENrQa2mKlsDKynBfqU2uWaRP80HeWp4TkGgf7/x3DVF2O7yi9N0x/PI1qzzTTpxlQ90D62XmpiTw==", - "license": "MIT", - "peerDependencies": { - "css-loader": "*", - "sass-loader": "*", - "style-loader": "*" - } - }, "node_modules/@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -16115,40 +16103,6 @@ "node": ">=0.10.0" } }, - "node_modules/sass-loader": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-17.0.0.tgz", - "integrity": "sha512-0Ybm8ohBQ9LcrycVrFQp/KQBNX5a3Wda9/smS0mE/xLffzEnwvV8nykOzrbiSWNzTE3IB/jiXx8O4QmDPG2+Gw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 22.11.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -19280,9 +19234,9 @@ } }, "@authorizerdev/authorizer-js": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-3.0.4.tgz", - "integrity": "sha512-vkXg1inxC6U2eLra/EQmhTVKzdlpCF4+a93tOfUgSyISYnE8v9np54OAOrs//4aTVOwFTIhahSTvpERKj2NZAQ==", + "version": "4.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-4.0.0-rc.0.tgz", + "integrity": "sha512-BVxzi9Dm4J5O6kDvvS18BrZwEaxkff2wKqW29cyMsj5s93T+OA+/bYaOlXOwLtPsabuoGUKONp+ZX05JksZ3UA==", "requires": { "cross-fetch": "^4.1.0" }, @@ -19298,12 +19252,11 @@ } }, "@authorizerdev/authorizer-react": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-2.0.7.tgz", - "integrity": "sha512-+qBrbdE6VyljOge1Ad2AmVIpoheymlLsMxCZHW0hnCeKf0R0wJz3MvoKBiaHAcRF/Bf8Wc6+NBCctAnzXjiwMg==", + "version": "2.2.0-rc.7", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-2.2.0-rc.7.tgz", + "integrity": "sha512-45W/6vIyGCSSsGo847tc/RWr8ApuqLknuxWQW0IiupKNZWDMqsP8Vao2QR28qe8mRAXgzETfca5Hz6d3Yn4wEA==", "requires": { - "@authorizerdev/authorizer-js": "3.0.4", - "@storybook/preset-scss": "^1.0.3", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", "validator": "^13.11.0" } }, @@ -21099,12 +21052,6 @@ } } }, - "@storybook/preset-scss": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@storybook/preset-scss/-/preset-scss-1.0.3.tgz", - "integrity": "sha512-o9Iz6wxPeNENrQa2mKlsDKynBfqU2uWaRP80HeWp4TkGgf7/x3DVF2O7yi9N0x/PI1qzzTTpxlQ90D62XmpiTw==", - "requires": {} - }, "@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -31181,13 +31128,6 @@ } } }, - "sass-loader": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-17.0.0.tgz", - "integrity": "sha512-0Ybm8ohBQ9LcrycVrFQp/KQBNX5a3Wda9/smS0mE/xLffzEnwvV8nykOzrbiSWNzTE3IB/jiXx8O4QmDPG2+Gw==", - "peer": true, - "requires": {} - }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", diff --git a/with-gatsbyjs/package.json b/with-gatsbyjs/package.json index be4b0b6..590f0ab 100644 --- a/with-gatsbyjs/package.json +++ b/with-gatsbyjs/package.json @@ -15,7 +15,7 @@ "clean": "gatsby clean" }, "dependencies": { - "@authorizerdev/authorizer-react": "^2.2.0-rc.6", + "@authorizerdev/authorizer-react": "^2.2.0-rc.7", "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.22", "babel-plugin-styled-components": "^2.0.2", diff --git a/with-go/README.md b/with-go/README.md index d2cd25c..5ce2a60 100644 --- a/with-go/README.md +++ b/with-go/README.md @@ -1,6 +1,6 @@ # Authorizer Example with Go -Signup, login and profile with the [Go SDK](https://github.com/authorizerdev/authorizer-go) (release `2.1.0`) over the GraphQL protocol, plus the admin client listing users. +Signup, login and profile with the [Go SDK](https://github.com/authorizerdev/authorizer-go) (release `v2.2.0-rc.5`) over the GraphQL protocol, plus the admin client listing users. ## Run an Authorizer instance @@ -20,7 +20,7 @@ Defaults match `make dev`; override with `AUTHORIZER_URL`, `CLIENT_ID`, `ADMIN_S ## Notes -- The SDK release is tagged `2.1.0` (no `v` prefix), so Go resolves it as the pseudo-version `v0.0.0-20260616165143-dc16e71b66f7` you see in `go.mod` — same code, exact commit of the release tag. +- The SDK is v2+, so the module path carries the `/v2` suffix: import `github.com/authorizerdev/authorizer-go/v2` and require `github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5` in `go.mod`. - The client supports three wire protocols: `graphql` (default, used here), `rest`, and `grpc` (`authorizer.WithProtocol`). - Admin operations (`admin.Users`, etc.) authenticate with the `x-authorizer-admin-secret` header, handled by `NewAuthorizerAdminClient`. -- **Do not use `GetToken` in `2.1.0`** — it is a non-functional stub in that release (fixed on the SDK's unreleased `main`). Get tokens via `Login`, or call `POST /oauth/token` directly for machine flows (see the `with-m2m-client-credentials` example). +- `GetToken` is functional in `v2.2.0-rc.5` (including `client_credentials`); you can also get tokens via `Login`, or call `POST /oauth/token` directly for machine flows (see the `with-m2m-client-credentials` example). diff --git a/with-go/go.mod b/with-go/go.mod index 45e3077..c1e6982 100644 --- a/with-go/go.mod +++ b/with-go/go.mod @@ -2,16 +2,16 @@ module github.com/authorizerdev/examples/with-go go 1.25.5 -require github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.4 +require github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5 require ( buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 // indirect - github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.0 // indirect - golang.org/x/net v0.51.0 // indirect - golang.org/x/sys v0.42.0 // indirect - golang.org/x/text v0.34.0 // indirect + github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 // indirect + golang.org/x/net v0.53.0 // indirect + golang.org/x/sys v0.43.0 // indirect + golang.org/x/text v0.36.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 // indirect - google.golang.org/grpc v1.81.1 // indirect + google.golang.org/grpc v1.82.1 // indirect google.golang.org/protobuf v1.36.11 // indirect ) diff --git a/with-go/go.sum b/with-go/go.sum index f4de2a6..54610c8 100644 --- a/with-go/go.sum +++ b/with-go/go.sum @@ -1,9 +1,9 @@ buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 h1:s6hzCXtND/ICdGPTMGk7C+/BFlr2Jg5GyH0NKf4XGXg= buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1/go.mod h1:tvtbpgaVXZX4g6Pn+AnzFycuRK3MOz5HJfEGeEllXYM= -github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.4 h1:w8qQmAdP9OFiejsPuSsQqCRdWT29f7gHHFf1UTc8KGU= -github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.4/go.mod h1:1gnCE9aCctLn9TZRdyjkbyJIQnFJtK2nXkXoGvj40uQ= -github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.0 h1:PQGjo4yfxU4V4NXOJj1OjbLKNxRpf3ih2eCdTMmUEkY= -github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.0/go.mod h1:cVUPv4XVeH3YeoFjfnl+ug/KlUinrGOAUZu3E+sjjHs= +github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5 h1:1XK8wIULavh2yySN7e7PjkfYA4tmduu+/r0U0mp00jU= +github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5/go.mod h1:K+T7TOq5sLxRefpI0buBKOOdHeaLD7vhK0lmH0XLSE8= +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 h1:te2ADwG6Xyi1VVB6z3+jz/n1I/gdhqEewZFYfeosfmI= +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1/go.mod h1:brXkT8HCo4XawfZ39ai2TQdgNRVFrYnRd5cSP899wHU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= @@ -28,19 +28,19 @@ go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfC go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= -golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= -golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= -golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= +golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= +golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= +golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= +golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 h1:PvEgGJf9C/1u5CHkInMg7UFYYUoiaQmW2LbtH0pjB78= google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ= -google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= +google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE= +google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= diff --git a/with-go/main.go b/with-go/main.go index dd76c6e..a8eedc4 100644 --- a/with-go/main.go +++ b/with-go/main.go @@ -10,8 +10,12 @@ package main import ( + "bytes" + "encoding/json" "fmt" + "io" "log" + "net/http" "os" "time" @@ -67,17 +71,28 @@ func main() { // away panics. // // This example declines, which is what SkipMfaSetup is for: it records the - // refusal and releases the withheld token. Identification is by the MFA - // session cookie set above plus the email, so it must run on the same - // client. Fails if the instance runs with --enforce-mfa, where declining - // is not permitted; a real app would drive the TOTP/OTP setup screen - // instead. + // refusal and releases the withheld token. Fails if the instance runs with + // --enforce-mfa, where declining is not permitted; a real app would drive + // the TOTP/OTP setup screen instead. + // + // The call is identified by the `mfa_session` cookie the login response + // set, plus the email. authorizer-go builds a fresh http.Client per call + // with no cookie jar, so nothing captured that cookie — mfaSessionCookie + // below re-runs the login over net/http to read it off the response, and + // ExtraHeaders replays it on the SkipMfaSetup call. Drop both once the SDK + // ships a cookie jar. if login.AccessToken == nil { fmt.Println("mfa setup offered:", refString(login.Message)) + cookie, err := mfaSessionCookie(url, clientID, email, password) + if err != nil { + log.Fatal("mfa session: ", err) + } + client.ExtraHeaders = map[string]string{"Cookie": cookie} login, err = client.SkipMfaSetup(&authorizer.SkipMfaSetupRequest{Email: &email}) if err != nil { log.Fatal("skip mfa setup: ", err) } + client.ExtraHeaders = nil fmt.Println("mfa setup declined, token issued") } fmt.Println("logged in, token expires in:", *login.ExpiresIn, "seconds") @@ -113,3 +128,44 @@ func refString(s *string) string { } return *s } + +// mfaSessionCookie logs in over plain net/http purely to read the +// `mfa_session` cookie off the response, and returns it as a Cookie header +// value. Two things make this necessary and neither is the example's doing: +// authorizer-go keeps no cookie jar, and the server marks the cookie Secure +// even over http (--app-cookie-secure defaults to true), so a jar would +// refuse to replay it against a local server anyway. Sending the header by +// hand sidesteps both. +func mfaSessionCookie(authorizerURL, clientID, email, password string) (string, error) { + body, err := json.Marshal(map[string]any{ + "query": `mutation ($p: LoginRequest!) { login(params: $p) { message } }`, + "variables": map[string]any{ + "p": map[string]string{"email": email, "password": password}, + }, + }) + if err != nil { + return "", err + } + req, err := http.NewRequest(http.MethodPost, authorizerURL+"/graphql", bytes.NewReader(body)) + if err != nil { + return "", err + } + req.Header.Set("Content-Type", "application/json") + // Authorizer's CSRF guard rejects state-changing requests with no Origin. + req.Header.Set("Origin", authorizerURL) + req.Header.Set("x-authorizer-client-id", clientID) + + res, err := http.DefaultClient.Do(req) + if err != nil { + return "", err + } + defer res.Body.Close() + io.Copy(io.Discard, res.Body) + + for _, c := range res.Cookies() { + if c.Name == "mfa_session" { + return c.Name + "=" + c.Value, nil + } + } + return "", fmt.Errorf("no mfa_session cookie on the login response") +} diff --git a/with-grpc/README.md b/with-grpc/README.md index cc20d08..432bc6e 100644 --- a/with-grpc/README.md +++ b/with-grpc/README.md @@ -70,12 +70,16 @@ no CSRF). - `make dev` serves plaintext gRPC — fine locally. In production terminate TLS on the gRPC listener (`--grpc-tls-cert`/`--grpc-tls-key`) and dial with `credentials.NewTLS(&tls.Config{})` instead of `insecure.NewCredentials()`. Bearer tokens must never cross an unencrypted channel outside local dev. - Server reflection is on by default (`--enable-grpc-reflection`), so `grpcurl -plaintext localhost:9091 list` works too. -## Regenerating the stubs +## Where the stubs come from -`gen/authorizer/v1/` is vendored from the server repo's protos: +The generated Go stubs are a real versioned dependency, not vendored source: -```bash -# from the authorizer repo's proto/ directory -buf generate --template buf.gen.clients.yaml --include-imports -# copy gen/go-client/authorizer/v1/*.go here (adjust go_package_prefix to this module) ``` +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 +``` + +[authorizer-proto-go](https://github.com/authorizerdev/authorizer-proto-go) is +regenerated from the server repo's `proto/authorizer/v1/*.proto` on each +release, so `go get -u` is all it takes to follow a schema change. The +official Go SDK depends on the same module — you can mix `authorizer-go` and +raw gRPC in one program without two copies of the types. diff --git a/with-grpc/gen/authorizer/v1/admin.pb.go b/with-grpc/gen/authorizer/v1/admin.pb.go deleted file mode 100644 index 8b56ceb..0000000 --- a/with-grpc/gen/authorizer/v1/admin.pb.go +++ /dev/null @@ -1,6933 +0,0 @@ -// proto/authorizer/v1/admin.proto -// -// AuthorizerAdminService exposes Authorizer's super-admin-only operations -// (the `_`-prefixed GraphQL queries/mutations). It is registered on the SAME -// grpc.Server and gateway mux as AuthorizerService. Every RPC requires -// super-admin auth (admin session cookie or x-authorizer-admin-secret header) -// except AdminLogin, which establishes it. Admin operations are intentionally -// NOT exposed over MCP. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.2 -// protoc (unknown) -// source: authorizer/v1/admin.proto - -package authorizerv1 - -import ( - _ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate" - _ "google.golang.org/genproto/googleapis/api/annotations" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type AdminLoginRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AdminSecret string `protobuf:"bytes,1,opt,name=admin_secret,json=adminSecret,proto3" json:"admin_secret,omitempty"` -} - -func (x *AdminLoginRequest) Reset() { - *x = AdminLoginRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AdminLoginRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminLoginRequest) ProtoMessage() {} - -func (x *AdminLoginRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AdminLoginRequest.ProtoReflect.Descriptor instead. -func (*AdminLoginRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{0} -} - -func (x *AdminLoginRequest) GetAdminSecret() string { - if x != nil { - return x.AdminSecret - } - return "" -} - -type AdminLoginResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *AdminLoginResponse) Reset() { - *x = AdminLoginResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AdminLoginResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminLoginResponse) ProtoMessage() {} - -func (x *AdminLoginResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AdminLoginResponse.ProtoReflect.Descriptor instead. -func (*AdminLoginResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{1} -} - -func (x *AdminLoginResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type AdminLogoutRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *AdminLogoutRequest) Reset() { - *x = AdminLogoutRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AdminLogoutRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminLogoutRequest) ProtoMessage() {} - -func (x *AdminLogoutRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[2] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AdminLogoutRequest.ProtoReflect.Descriptor instead. -func (*AdminLogoutRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{2} -} - -type AdminLogoutResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *AdminLogoutResponse) Reset() { - *x = AdminLogoutResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AdminLogoutResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminLogoutResponse) ProtoMessage() {} - -func (x *AdminLogoutResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[3] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AdminLogoutResponse.ProtoReflect.Descriptor instead. -func (*AdminLogoutResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{3} -} - -func (x *AdminLogoutResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type AdminSessionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *AdminSessionRequest) Reset() { - *x = AdminSessionRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AdminSessionRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminSessionRequest) ProtoMessage() {} - -func (x *AdminSessionRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[4] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AdminSessionRequest.ProtoReflect.Descriptor instead. -func (*AdminSessionRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{4} -} - -type AdminSessionResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *AdminSessionResponse) Reset() { - *x = AdminSessionResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AdminSessionResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminSessionResponse) ProtoMessage() {} - -func (x *AdminSessionResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[5] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AdminSessionResponse.ProtoReflect.Descriptor instead. -func (*AdminSessionResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{5} -} - -func (x *AdminSessionResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type AdminMetaRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *AdminMetaRequest) Reset() { - *x = AdminMetaRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AdminMetaRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminMetaRequest) ProtoMessage() {} - -func (x *AdminMetaRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[6] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AdminMetaRequest.ProtoReflect.Descriptor instead. -func (*AdminMetaRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{6} -} - -type AdminMetaResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AdminMeta *AdminMeta `protobuf:"bytes,1,opt,name=admin_meta,json=adminMeta,proto3" json:"admin_meta,omitempty"` -} - -func (x *AdminMetaResponse) Reset() { - *x = AdminMetaResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AdminMetaResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminMetaResponse) ProtoMessage() {} - -func (x *AdminMetaResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[7] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AdminMetaResponse.ProtoReflect.Descriptor instead. -func (*AdminMetaResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{7} -} - -func (x *AdminMetaResponse) GetAdminMeta() *AdminMeta { - if x != nil { - return x.AdminMeta - } - return nil -} - -// AdminMeta mirrors model.AdminMeta exactly (no version field). -type AdminMeta struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` - DefaultRoles []string `protobuf:"bytes,2,rep,name=default_roles,json=defaultRoles,proto3" json:"default_roles,omitempty"` - ProtectedRoles []string `protobuf:"bytes,3,rep,name=protected_roles,json=protectedRoles,proto3" json:"protected_roles,omitempty"` -} - -func (x *AdminMeta) Reset() { - *x = AdminMeta{} - mi := &file_authorizer_v1_admin_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AdminMeta) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AdminMeta) ProtoMessage() {} - -func (x *AdminMeta) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[8] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AdminMeta.ProtoReflect.Descriptor instead. -func (*AdminMeta) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{8} -} - -func (x *AdminMeta) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *AdminMeta) GetDefaultRoles() []string { - if x != nil { - return x.DefaultRoles - } - return nil -} - -func (x *AdminMeta) GetProtectedRoles() []string { - if x != nil { - return x.ProtectedRoles - } - return nil -} - -type UsersRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *PaginationRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *UsersRequest) Reset() { - *x = UsersRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UsersRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UsersRequest) ProtoMessage() {} - -func (x *UsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[9] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UsersRequest.ProtoReflect.Descriptor instead. -func (*UsersRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{9} -} - -func (x *UsersRequest) GetPagination() *PaginationRequest { - if x != nil { - return x.Pagination - } - return nil -} - -type UsersResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` - Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *UsersResponse) Reset() { - *x = UsersResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UsersResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UsersResponse) ProtoMessage() {} - -func (x *UsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[10] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UsersResponse.ProtoReflect.Descriptor instead. -func (*UsersResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{10} -} - -func (x *UsersResponse) GetUsers() []*User { - if x != nil { - return x.Users - } - return nil -} - -func (x *UsersResponse) GetPagination() *Pagination { - if x != nil { - return x.Pagination - } - return nil -} - -// UserRequest fetches a single user by id or email; at least one must be set. -type UserRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` -} - -func (x *UserRequest) Reset() { - *x = UserRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UserRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserRequest) ProtoMessage() {} - -func (x *UserRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[11] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UserRequest.ProtoReflect.Descriptor instead. -func (*UserRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{11} -} - -func (x *UserRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *UserRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -type UserResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` -} - -func (x *UserResponse) Reset() { - *x = UserResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UserResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserResponse) ProtoMessage() {} - -func (x *UserResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[12] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UserResponse.ProtoReflect.Descriptor instead. -func (*UserResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{12} -} - -func (x *UserResponse) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -// UpdateUserRequest mirrors model.UpdateUserRequest. Nullable GraphQL inputs use -// proto3 `optional` so an unset field is distinguishable from an empty value -// (e.g. clearing a name vs leaving it untouched, or email_verified=false). -type UpdateUserRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Email *string `protobuf:"bytes,2,opt,name=email,proto3,oneof" json:"email,omitempty"` - EmailVerified *bool `protobuf:"varint,3,opt,name=email_verified,json=emailVerified,proto3,oneof" json:"email_verified,omitempty"` - GivenName *string `protobuf:"bytes,4,opt,name=given_name,json=givenName,proto3,oneof" json:"given_name,omitempty"` - FamilyName *string `protobuf:"bytes,5,opt,name=family_name,json=familyName,proto3,oneof" json:"family_name,omitempty"` - MiddleName *string `protobuf:"bytes,6,opt,name=middle_name,json=middleName,proto3,oneof" json:"middle_name,omitempty"` - Nickname *string `protobuf:"bytes,7,opt,name=nickname,proto3,oneof" json:"nickname,omitempty"` - Gender *string `protobuf:"bytes,8,opt,name=gender,proto3,oneof" json:"gender,omitempty"` - Birthdate *string `protobuf:"bytes,9,opt,name=birthdate,proto3,oneof" json:"birthdate,omitempty"` - PhoneNumber *string `protobuf:"bytes,10,opt,name=phone_number,json=phoneNumber,proto3,oneof" json:"phone_number,omitempty"` - PhoneNumberVerified *bool `protobuf:"varint,11,opt,name=phone_number_verified,json=phoneNumberVerified,proto3,oneof" json:"phone_number_verified,omitempty"` - Picture *string `protobuf:"bytes,12,opt,name=picture,proto3,oneof" json:"picture,omitempty"` - Roles []string `protobuf:"bytes,13,rep,name=roles,proto3" json:"roles,omitempty"` - IsMultiFactorAuthEnabled *bool `protobuf:"varint,14,opt,name=is_multi_factor_auth_enabled,json=isMultiFactorAuthEnabled,proto3,oneof" json:"is_multi_factor_auth_enabled,omitempty"` - AppData *AppData `protobuf:"bytes,15,opt,name=app_data,json=appData,proto3" json:"app_data,omitempty"` -} - -func (x *UpdateUserRequest) Reset() { - *x = UpdateUserRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateUserRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserRequest) ProtoMessage() {} - -func (x *UpdateUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[13] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateUserRequest.ProtoReflect.Descriptor instead. -func (*UpdateUserRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{13} -} - -func (x *UpdateUserRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *UpdateUserRequest) GetEmail() string { - if x != nil && x.Email != nil { - return *x.Email - } - return "" -} - -func (x *UpdateUserRequest) GetEmailVerified() bool { - if x != nil && x.EmailVerified != nil { - return *x.EmailVerified - } - return false -} - -func (x *UpdateUserRequest) GetGivenName() string { - if x != nil && x.GivenName != nil { - return *x.GivenName - } - return "" -} - -func (x *UpdateUserRequest) GetFamilyName() string { - if x != nil && x.FamilyName != nil { - return *x.FamilyName - } - return "" -} - -func (x *UpdateUserRequest) GetMiddleName() string { - if x != nil && x.MiddleName != nil { - return *x.MiddleName - } - return "" -} - -func (x *UpdateUserRequest) GetNickname() string { - if x != nil && x.Nickname != nil { - return *x.Nickname - } - return "" -} - -func (x *UpdateUserRequest) GetGender() string { - if x != nil && x.Gender != nil { - return *x.Gender - } - return "" -} - -func (x *UpdateUserRequest) GetBirthdate() string { - if x != nil && x.Birthdate != nil { - return *x.Birthdate - } - return "" -} - -func (x *UpdateUserRequest) GetPhoneNumber() string { - if x != nil && x.PhoneNumber != nil { - return *x.PhoneNumber - } - return "" -} - -func (x *UpdateUserRequest) GetPhoneNumberVerified() bool { - if x != nil && x.PhoneNumberVerified != nil { - return *x.PhoneNumberVerified - } - return false -} - -func (x *UpdateUserRequest) GetPicture() string { - if x != nil && x.Picture != nil { - return *x.Picture - } - return "" -} - -func (x *UpdateUserRequest) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *UpdateUserRequest) GetIsMultiFactorAuthEnabled() bool { - if x != nil && x.IsMultiFactorAuthEnabled != nil { - return *x.IsMultiFactorAuthEnabled - } - return false -} - -func (x *UpdateUserRequest) GetAppData() *AppData { - if x != nil { - return x.AppData - } - return nil -} - -type UpdateUserResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` -} - -func (x *UpdateUserResponse) Reset() { - *x = UpdateUserResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateUserResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserResponse) ProtoMessage() {} - -func (x *UpdateUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[14] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateUserResponse.ProtoReflect.Descriptor instead. -func (*UpdateUserResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{14} -} - -func (x *UpdateUserResponse) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -// DeleteUserRequest mirrors model.DeleteUserRequest. -type DeleteUserRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` -} - -func (x *DeleteUserRequest) Reset() { - *x = DeleteUserRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteUserRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUserRequest) ProtoMessage() {} - -func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[15] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteUserRequest.ProtoReflect.Descriptor instead. -func (*DeleteUserRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{15} -} - -func (x *DeleteUserRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -type DeleteUserResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *DeleteUserResponse) Reset() { - *x = DeleteUserResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteUserResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUserResponse) ProtoMessage() {} - -func (x *DeleteUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[16] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteUserResponse.ProtoReflect.Descriptor instead. -func (*DeleteUserResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{16} -} - -func (x *DeleteUserResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type VerificationRequestsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *PaginationRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *VerificationRequestsRequest) Reset() { - *x = VerificationRequestsRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *VerificationRequestsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VerificationRequestsRequest) ProtoMessage() {} - -func (x *VerificationRequestsRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[17] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use VerificationRequestsRequest.ProtoReflect.Descriptor instead. -func (*VerificationRequestsRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{17} -} - -func (x *VerificationRequestsRequest) GetPagination() *PaginationRequest { - if x != nil { - return x.Pagination - } - return nil -} - -type VerificationRequestsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - VerificationRequests []*VerificationRequest `protobuf:"bytes,1,rep,name=verification_requests,json=verificationRequests,proto3" json:"verification_requests,omitempty"` - Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *VerificationRequestsResponse) Reset() { - *x = VerificationRequestsResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *VerificationRequestsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VerificationRequestsResponse) ProtoMessage() {} - -func (x *VerificationRequestsResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[18] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use VerificationRequestsResponse.ProtoReflect.Descriptor instead. -func (*VerificationRequestsResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{18} -} - -func (x *VerificationRequestsResponse) GetVerificationRequests() []*VerificationRequest { - if x != nil { - return x.VerificationRequests - } - return nil -} - -func (x *VerificationRequestsResponse) GetPagination() *Pagination { - if x != nil { - return x.Pagination - } - return nil -} - -// VerificationRequest mirrors model.VerificationRequest field-for-field. -type VerificationRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Identifier string `protobuf:"bytes,2,opt,name=identifier,proto3" json:"identifier,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` - Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` - Expires int64 `protobuf:"varint,5,opt,name=expires,proto3" json:"expires,omitempty"` - CreatedAt int64 `protobuf:"varint,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt int64 `protobuf:"varint,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - Nonce string `protobuf:"bytes,8,opt,name=nonce,proto3" json:"nonce,omitempty"` - RedirectUri string `protobuf:"bytes,9,opt,name=redirect_uri,json=redirectUri,proto3" json:"redirect_uri,omitempty"` -} - -func (x *VerificationRequest) Reset() { - *x = VerificationRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *VerificationRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VerificationRequest) ProtoMessage() {} - -func (x *VerificationRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[19] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use VerificationRequest.ProtoReflect.Descriptor instead. -func (*VerificationRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{19} -} - -func (x *VerificationRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *VerificationRequest) GetIdentifier() string { - if x != nil { - return x.Identifier - } - return "" -} - -func (x *VerificationRequest) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -func (x *VerificationRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *VerificationRequest) GetExpires() int64 { - if x != nil { - return x.Expires - } - return 0 -} - -func (x *VerificationRequest) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *VerificationRequest) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *VerificationRequest) GetNonce() string { - if x != nil { - return x.Nonce - } - return "" -} - -func (x *VerificationRequest) GetRedirectUri() string { - if x != nil { - return x.RedirectUri - } - return "" -} - -// RevokeAccessRequest mirrors model.UpdateAccessRequest (a single user id). It -// is kept distinct from EnableAccessRequest per buf's one-message-per-RPC rule. -type RevokeAccessRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` -} - -func (x *RevokeAccessRequest) Reset() { - *x = RevokeAccessRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *RevokeAccessRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RevokeAccessRequest) ProtoMessage() {} - -func (x *RevokeAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[20] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RevokeAccessRequest.ProtoReflect.Descriptor instead. -func (*RevokeAccessRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{20} -} - -func (x *RevokeAccessRequest) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -type RevokeAccessResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *RevokeAccessResponse) Reset() { - *x = RevokeAccessResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *RevokeAccessResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RevokeAccessResponse) ProtoMessage() {} - -func (x *RevokeAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[21] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RevokeAccessResponse.ProtoReflect.Descriptor instead. -func (*RevokeAccessResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{21} -} - -func (x *RevokeAccessResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// EnableAccessRequest mirrors model.UpdateAccessRequest (a single user id). It -// is kept distinct from RevokeAccessRequest per buf's one-message-per-RPC rule. -type EnableAccessRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` -} - -func (x *EnableAccessRequest) Reset() { - *x = EnableAccessRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *EnableAccessRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EnableAccessRequest) ProtoMessage() {} - -func (x *EnableAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[22] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use EnableAccessRequest.ProtoReflect.Descriptor instead. -func (*EnableAccessRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{22} -} - -func (x *EnableAccessRequest) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -type EnableAccessResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *EnableAccessResponse) Reset() { - *x = EnableAccessResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *EnableAccessResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EnableAccessResponse) ProtoMessage() {} - -func (x *EnableAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[23] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use EnableAccessResponse.ProtoReflect.Descriptor instead. -func (*EnableAccessResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{23} -} - -func (x *EnableAccessResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// InviteMembersRequest mirrors model.InviteMemberRequest. redirect_uri is -// optional; when unset the configured app URL is used. -type InviteMembersRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Emails []string `protobuf:"bytes,1,rep,name=emails,proto3" json:"emails,omitempty"` - RedirectUri *string `protobuf:"bytes,2,opt,name=redirect_uri,json=redirectUri,proto3,oneof" json:"redirect_uri,omitempty"` -} - -func (x *InviteMembersRequest) Reset() { - *x = InviteMembersRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *InviteMembersRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InviteMembersRequest) ProtoMessage() {} - -func (x *InviteMembersRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[24] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use InviteMembersRequest.ProtoReflect.Descriptor instead. -func (*InviteMembersRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{24} -} - -func (x *InviteMembersRequest) GetEmails() []string { - if x != nil { - return x.Emails - } - return nil -} - -func (x *InviteMembersRequest) GetRedirectUri() string { - if x != nil && x.RedirectUri != nil { - return *x.RedirectUri - } - return "" -} - -// InviteMembersResponse mirrors model.InviteMembersResponse (a message plus the -// list of newly invited users). -type InviteMembersResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - Users []*User `protobuf:"bytes,2,rep,name=users,proto3" json:"users,omitempty"` -} - -func (x *InviteMembersResponse) Reset() { - *x = InviteMembersResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *InviteMembersResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InviteMembersResponse) ProtoMessage() {} - -func (x *InviteMembersResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[25] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use InviteMembersResponse.ProtoReflect.Descriptor instead. -func (*InviteMembersResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{25} -} - -func (x *InviteMembersResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *InviteMembersResponse) GetUsers() []*User { - if x != nil { - return x.Users - } - return nil -} - -// Webhook mirrors model.Webhook field-for-field. headers is a free-form JSON -// object (reusing the shared AppData wrapper around google.protobuf.Struct). -type Webhook struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - EventName string `protobuf:"bytes,2,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"` - EventDescription string `protobuf:"bytes,3,opt,name=event_description,json=eventDescription,proto3" json:"event_description,omitempty"` - Endpoint string `protobuf:"bytes,4,opt,name=endpoint,proto3" json:"endpoint,omitempty"` - Enabled bool `protobuf:"varint,5,opt,name=enabled,proto3" json:"enabled,omitempty"` - Headers *AppData `protobuf:"bytes,6,opt,name=headers,proto3" json:"headers,omitempty"` - CreatedAt int64 `protobuf:"varint,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt int64 `protobuf:"varint,8,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` -} - -func (x *Webhook) Reset() { - *x = Webhook{} - mi := &file_authorizer_v1_admin_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Webhook) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Webhook) ProtoMessage() {} - -func (x *Webhook) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[26] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Webhook.ProtoReflect.Descriptor instead. -func (*Webhook) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{26} -} - -func (x *Webhook) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *Webhook) GetEventName() string { - if x != nil { - return x.EventName - } - return "" -} - -func (x *Webhook) GetEventDescription() string { - if x != nil { - return x.EventDescription - } - return "" -} - -func (x *Webhook) GetEndpoint() string { - if x != nil { - return x.Endpoint - } - return "" -} - -func (x *Webhook) GetEnabled() bool { - if x != nil { - return x.Enabled - } - return false -} - -func (x *Webhook) GetHeaders() *AppData { - if x != nil { - return x.Headers - } - return nil -} - -func (x *Webhook) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *Webhook) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -// WebhookLog mirrors model.WebhookLog field-for-field. -type WebhookLog struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - HttpStatus int64 `protobuf:"varint,2,opt,name=http_status,json=httpStatus,proto3" json:"http_status,omitempty"` - Response string `protobuf:"bytes,3,opt,name=response,proto3" json:"response,omitempty"` - Request string `protobuf:"bytes,4,opt,name=request,proto3" json:"request,omitempty"` - WebhookId string `protobuf:"bytes,5,opt,name=webhook_id,json=webhookId,proto3" json:"webhook_id,omitempty"` - CreatedAt int64 `protobuf:"varint,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt int64 `protobuf:"varint,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` -} - -func (x *WebhookLog) Reset() { - *x = WebhookLog{} - mi := &file_authorizer_v1_admin_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *WebhookLog) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WebhookLog) ProtoMessage() {} - -func (x *WebhookLog) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[27] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WebhookLog.ProtoReflect.Descriptor instead. -func (*WebhookLog) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{27} -} - -func (x *WebhookLog) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *WebhookLog) GetHttpStatus() int64 { - if x != nil { - return x.HttpStatus - } - return 0 -} - -func (x *WebhookLog) GetResponse() string { - if x != nil { - return x.Response - } - return "" -} - -func (x *WebhookLog) GetRequest() string { - if x != nil { - return x.Request - } - return "" -} - -func (x *WebhookLog) GetWebhookId() string { - if x != nil { - return x.WebhookId - } - return "" -} - -func (x *WebhookLog) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *WebhookLog) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -// AddWebhookRequest mirrors model.AddWebhookRequest. event_description is -// optional; when unset it defaults to the event name with dots replaced by -// spaces. -type AddWebhookRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EventName string `protobuf:"bytes,1,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"` - EventDescription *string `protobuf:"bytes,2,opt,name=event_description,json=eventDescription,proto3,oneof" json:"event_description,omitempty"` - Endpoint string `protobuf:"bytes,3,opt,name=endpoint,proto3" json:"endpoint,omitempty"` - Enabled bool `protobuf:"varint,4,opt,name=enabled,proto3" json:"enabled,omitempty"` - Headers *AppData `protobuf:"bytes,5,opt,name=headers,proto3" json:"headers,omitempty"` -} - -func (x *AddWebhookRequest) Reset() { - *x = AddWebhookRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AddWebhookRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddWebhookRequest) ProtoMessage() {} - -func (x *AddWebhookRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[28] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddWebhookRequest.ProtoReflect.Descriptor instead. -func (*AddWebhookRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{28} -} - -func (x *AddWebhookRequest) GetEventName() string { - if x != nil { - return x.EventName - } - return "" -} - -func (x *AddWebhookRequest) GetEventDescription() string { - if x != nil && x.EventDescription != nil { - return *x.EventDescription - } - return "" -} - -func (x *AddWebhookRequest) GetEndpoint() string { - if x != nil { - return x.Endpoint - } - return "" -} - -func (x *AddWebhookRequest) GetEnabled() bool { - if x != nil { - return x.Enabled - } - return false -} - -func (x *AddWebhookRequest) GetHeaders() *AppData { - if x != nil { - return x.Headers - } - return nil -} - -type AddWebhookResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *AddWebhookResponse) Reset() { - *x = AddWebhookResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AddWebhookResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddWebhookResponse) ProtoMessage() {} - -func (x *AddWebhookResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[29] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddWebhookResponse.ProtoReflect.Descriptor instead. -func (*AddWebhookResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{29} -} - -func (x *AddWebhookResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// UpdateWebhookRequest mirrors model.UpdateWebhookRequest. Nullable GraphQL -// inputs use proto3 `optional` so an unset field is distinguishable from an -// empty value. -type UpdateWebhookRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - EventName *string `protobuf:"bytes,2,opt,name=event_name,json=eventName,proto3,oneof" json:"event_name,omitempty"` - EventDescription *string `protobuf:"bytes,3,opt,name=event_description,json=eventDescription,proto3,oneof" json:"event_description,omitempty"` - Endpoint *string `protobuf:"bytes,4,opt,name=endpoint,proto3,oneof" json:"endpoint,omitempty"` - Enabled *bool `protobuf:"varint,5,opt,name=enabled,proto3,oneof" json:"enabled,omitempty"` - Headers *AppData `protobuf:"bytes,6,opt,name=headers,proto3" json:"headers,omitempty"` -} - -func (x *UpdateWebhookRequest) Reset() { - *x = UpdateWebhookRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateWebhookRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateWebhookRequest) ProtoMessage() {} - -func (x *UpdateWebhookRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[30] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateWebhookRequest.ProtoReflect.Descriptor instead. -func (*UpdateWebhookRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{30} -} - -func (x *UpdateWebhookRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *UpdateWebhookRequest) GetEventName() string { - if x != nil && x.EventName != nil { - return *x.EventName - } - return "" -} - -func (x *UpdateWebhookRequest) GetEventDescription() string { - if x != nil && x.EventDescription != nil { - return *x.EventDescription - } - return "" -} - -func (x *UpdateWebhookRequest) GetEndpoint() string { - if x != nil && x.Endpoint != nil { - return *x.Endpoint - } - return "" -} - -func (x *UpdateWebhookRequest) GetEnabled() bool { - if x != nil && x.Enabled != nil { - return *x.Enabled - } - return false -} - -func (x *UpdateWebhookRequest) GetHeaders() *AppData { - if x != nil { - return x.Headers - } - return nil -} - -type UpdateWebhookResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *UpdateWebhookResponse) Reset() { - *x = UpdateWebhookResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateWebhookResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateWebhookResponse) ProtoMessage() {} - -func (x *UpdateWebhookResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[31] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateWebhookResponse.ProtoReflect.Descriptor instead. -func (*UpdateWebhookResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{31} -} - -func (x *UpdateWebhookResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// DeleteWebhookRequest mirrors model.WebhookRequest (a single webhook id). It is -// kept distinct from GetWebhookRequest per buf's one-message-per-RPC rule. -type DeleteWebhookRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *DeleteWebhookRequest) Reset() { - *x = DeleteWebhookRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteWebhookRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteWebhookRequest) ProtoMessage() {} - -func (x *DeleteWebhookRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[32] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteWebhookRequest.ProtoReflect.Descriptor instead. -func (*DeleteWebhookRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{32} -} - -func (x *DeleteWebhookRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -type DeleteWebhookResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *DeleteWebhookResponse) Reset() { - *x = DeleteWebhookResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteWebhookResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteWebhookResponse) ProtoMessage() {} - -func (x *DeleteWebhookResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[33] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteWebhookResponse.ProtoReflect.Descriptor instead. -func (*DeleteWebhookResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{33} -} - -func (x *DeleteWebhookResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// GetWebhookRequest mirrors model.WebhookRequest (a single webhook id). It is -// kept distinct from DeleteWebhookRequest per buf's one-message-per-RPC rule. -type GetWebhookRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *GetWebhookRequest) Reset() { - *x = GetWebhookRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetWebhookRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetWebhookRequest) ProtoMessage() {} - -func (x *GetWebhookRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[34] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetWebhookRequest.ProtoReflect.Descriptor instead. -func (*GetWebhookRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{34} -} - -func (x *GetWebhookRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -type GetWebhookResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Webhook *Webhook `protobuf:"bytes,1,opt,name=webhook,proto3" json:"webhook,omitempty"` -} - -func (x *GetWebhookResponse) Reset() { - *x = GetWebhookResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetWebhookResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetWebhookResponse) ProtoMessage() {} - -func (x *GetWebhookResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[35] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetWebhookResponse.ProtoReflect.Descriptor instead. -func (*GetWebhookResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{35} -} - -func (x *GetWebhookResponse) GetWebhook() *Webhook { - if x != nil { - return x.Webhook - } - return nil -} - -type WebhooksRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *PaginationRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *WebhooksRequest) Reset() { - *x = WebhooksRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *WebhooksRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WebhooksRequest) ProtoMessage() {} - -func (x *WebhooksRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[36] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WebhooksRequest.ProtoReflect.Descriptor instead. -func (*WebhooksRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{36} -} - -func (x *WebhooksRequest) GetPagination() *PaginationRequest { - if x != nil { - return x.Pagination - } - return nil -} - -type WebhooksResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Webhooks []*Webhook `protobuf:"bytes,1,rep,name=webhooks,proto3" json:"webhooks,omitempty"` - Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *WebhooksResponse) Reset() { - *x = WebhooksResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *WebhooksResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WebhooksResponse) ProtoMessage() {} - -func (x *WebhooksResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[37] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WebhooksResponse.ProtoReflect.Descriptor instead. -func (*WebhooksResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{37} -} - -func (x *WebhooksResponse) GetWebhooks() []*Webhook { - if x != nil { - return x.Webhooks - } - return nil -} - -func (x *WebhooksResponse) GetPagination() *Pagination { - if x != nil { - return x.Pagination - } - return nil -} - -// WebhookLogsRequest mirrors model.ListWebhookLogRequest. webhook_id is -// optional; when unset logs for all webhooks are returned. -type WebhookLogsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *PaginationRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` - WebhookId *string `protobuf:"bytes,2,opt,name=webhook_id,json=webhookId,proto3,oneof" json:"webhook_id,omitempty"` -} - -func (x *WebhookLogsRequest) Reset() { - *x = WebhookLogsRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *WebhookLogsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WebhookLogsRequest) ProtoMessage() {} - -func (x *WebhookLogsRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[38] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WebhookLogsRequest.ProtoReflect.Descriptor instead. -func (*WebhookLogsRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{38} -} - -func (x *WebhookLogsRequest) GetPagination() *PaginationRequest { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *WebhookLogsRequest) GetWebhookId() string { - if x != nil && x.WebhookId != nil { - return *x.WebhookId - } - return "" -} - -type WebhookLogsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - WebhookLogs []*WebhookLog `protobuf:"bytes,1,rep,name=webhook_logs,json=webhookLogs,proto3" json:"webhook_logs,omitempty"` - Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *WebhookLogsResponse) Reset() { - *x = WebhookLogsResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *WebhookLogsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WebhookLogsResponse) ProtoMessage() {} - -func (x *WebhookLogsResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[39] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WebhookLogsResponse.ProtoReflect.Descriptor instead. -func (*WebhookLogsResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{39} -} - -func (x *WebhookLogsResponse) GetWebhookLogs() []*WebhookLog { - if x != nil { - return x.WebhookLogs - } - return nil -} - -func (x *WebhookLogsResponse) GetPagination() *Pagination { - if x != nil { - return x.Pagination - } - return nil -} - -// TestEndpointRequest mirrors model.TestEndpointRequest. event_description is -// optional and unused by the test payload but accepted for parity. -type TestEndpointRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` - EventName string `protobuf:"bytes,2,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"` - EventDescription *string `protobuf:"bytes,3,opt,name=event_description,json=eventDescription,proto3,oneof" json:"event_description,omitempty"` - Headers *AppData `protobuf:"bytes,4,opt,name=headers,proto3" json:"headers,omitempty"` -} - -func (x *TestEndpointRequest) Reset() { - *x = TestEndpointRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *TestEndpointRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TestEndpointRequest) ProtoMessage() {} - -func (x *TestEndpointRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[40] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TestEndpointRequest.ProtoReflect.Descriptor instead. -func (*TestEndpointRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{40} -} - -func (x *TestEndpointRequest) GetEndpoint() string { - if x != nil { - return x.Endpoint - } - return "" -} - -func (x *TestEndpointRequest) GetEventName() string { - if x != nil { - return x.EventName - } - return "" -} - -func (x *TestEndpointRequest) GetEventDescription() string { - if x != nil && x.EventDescription != nil { - return *x.EventDescription - } - return "" -} - -func (x *TestEndpointRequest) GetHeaders() *AppData { - if x != nil { - return x.Headers - } - return nil -} - -// TestEndpointResponse mirrors model.TestEndpointResponse. -type TestEndpointResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - HttpStatus int64 `protobuf:"varint,1,opt,name=http_status,json=httpStatus,proto3" json:"http_status,omitempty"` - Response string `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"` -} - -func (x *TestEndpointResponse) Reset() { - *x = TestEndpointResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *TestEndpointResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TestEndpointResponse) ProtoMessage() {} - -func (x *TestEndpointResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[41] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TestEndpointResponse.ProtoReflect.Descriptor instead. -func (*TestEndpointResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{41} -} - -func (x *TestEndpointResponse) GetHttpStatus() int64 { - if x != nil { - return x.HttpStatus - } - return 0 -} - -func (x *TestEndpointResponse) GetResponse() string { - if x != nil { - return x.Response - } - return "" -} - -// EmailTemplate mirrors model.EmailTemplate field-for-field. -type EmailTemplate struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - EventName string `protobuf:"bytes,2,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"` - Template string `protobuf:"bytes,3,opt,name=template,proto3" json:"template,omitempty"` - Design string `protobuf:"bytes,4,opt,name=design,proto3" json:"design,omitempty"` - Subject string `protobuf:"bytes,5,opt,name=subject,proto3" json:"subject,omitempty"` - CreatedAt int64 `protobuf:"varint,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt int64 `protobuf:"varint,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` -} - -func (x *EmailTemplate) Reset() { - *x = EmailTemplate{} - mi := &file_authorizer_v1_admin_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *EmailTemplate) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EmailTemplate) ProtoMessage() {} - -func (x *EmailTemplate) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[42] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use EmailTemplate.ProtoReflect.Descriptor instead. -func (*EmailTemplate) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{42} -} - -func (x *EmailTemplate) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *EmailTemplate) GetEventName() string { - if x != nil { - return x.EventName - } - return "" -} - -func (x *EmailTemplate) GetTemplate() string { - if x != nil { - return x.Template - } - return "" -} - -func (x *EmailTemplate) GetDesign() string { - if x != nil { - return x.Design - } - return "" -} - -func (x *EmailTemplate) GetSubject() string { - if x != nil { - return x.Subject - } - return "" -} - -func (x *EmailTemplate) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *EmailTemplate) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -// AddEmailTemplateRequest mirrors model.AddEmailTemplateRequest. design is -// optional. -type AddEmailTemplateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EventName string `protobuf:"bytes,1,opt,name=event_name,json=eventName,proto3" json:"event_name,omitempty"` - Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` - Template string `protobuf:"bytes,3,opt,name=template,proto3" json:"template,omitempty"` - Design *string `protobuf:"bytes,4,opt,name=design,proto3,oneof" json:"design,omitempty"` -} - -func (x *AddEmailTemplateRequest) Reset() { - *x = AddEmailTemplateRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AddEmailTemplateRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddEmailTemplateRequest) ProtoMessage() {} - -func (x *AddEmailTemplateRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[43] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddEmailTemplateRequest.ProtoReflect.Descriptor instead. -func (*AddEmailTemplateRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{43} -} - -func (x *AddEmailTemplateRequest) GetEventName() string { - if x != nil { - return x.EventName - } - return "" -} - -func (x *AddEmailTemplateRequest) GetSubject() string { - if x != nil { - return x.Subject - } - return "" -} - -func (x *AddEmailTemplateRequest) GetTemplate() string { - if x != nil { - return x.Template - } - return "" -} - -func (x *AddEmailTemplateRequest) GetDesign() string { - if x != nil && x.Design != nil { - return *x.Design - } - return "" -} - -type AddEmailTemplateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *AddEmailTemplateResponse) Reset() { - *x = AddEmailTemplateResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AddEmailTemplateResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddEmailTemplateResponse) ProtoMessage() {} - -func (x *AddEmailTemplateResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[44] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddEmailTemplateResponse.ProtoReflect.Descriptor instead. -func (*AddEmailTemplateResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{44} -} - -func (x *AddEmailTemplateResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// UpdateEmailTemplateRequest mirrors model.UpdateEmailTemplateRequest. Nullable -// GraphQL inputs use proto3 `optional` so an unset field is distinguishable from -// an empty value. -type UpdateEmailTemplateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - EventName *string `protobuf:"bytes,2,opt,name=event_name,json=eventName,proto3,oneof" json:"event_name,omitempty"` - Template *string `protobuf:"bytes,3,opt,name=template,proto3,oneof" json:"template,omitempty"` - Subject *string `protobuf:"bytes,4,opt,name=subject,proto3,oneof" json:"subject,omitempty"` - Design *string `protobuf:"bytes,5,opt,name=design,proto3,oneof" json:"design,omitempty"` -} - -func (x *UpdateEmailTemplateRequest) Reset() { - *x = UpdateEmailTemplateRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateEmailTemplateRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateEmailTemplateRequest) ProtoMessage() {} - -func (x *UpdateEmailTemplateRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[45] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateEmailTemplateRequest.ProtoReflect.Descriptor instead. -func (*UpdateEmailTemplateRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{45} -} - -func (x *UpdateEmailTemplateRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *UpdateEmailTemplateRequest) GetEventName() string { - if x != nil && x.EventName != nil { - return *x.EventName - } - return "" -} - -func (x *UpdateEmailTemplateRequest) GetTemplate() string { - if x != nil && x.Template != nil { - return *x.Template - } - return "" -} - -func (x *UpdateEmailTemplateRequest) GetSubject() string { - if x != nil && x.Subject != nil { - return *x.Subject - } - return "" -} - -func (x *UpdateEmailTemplateRequest) GetDesign() string { - if x != nil && x.Design != nil { - return *x.Design - } - return "" -} - -type UpdateEmailTemplateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *UpdateEmailTemplateResponse) Reset() { - *x = UpdateEmailTemplateResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateEmailTemplateResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateEmailTemplateResponse) ProtoMessage() {} - -func (x *UpdateEmailTemplateResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[46] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateEmailTemplateResponse.ProtoReflect.Descriptor instead. -func (*UpdateEmailTemplateResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{46} -} - -func (x *UpdateEmailTemplateResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// DeleteEmailTemplateRequest mirrors model.DeleteEmailTemplateRequest (a single -// email template id). -type DeleteEmailTemplateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *DeleteEmailTemplateRequest) Reset() { - *x = DeleteEmailTemplateRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteEmailTemplateRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteEmailTemplateRequest) ProtoMessage() {} - -func (x *DeleteEmailTemplateRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[47] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteEmailTemplateRequest.ProtoReflect.Descriptor instead. -func (*DeleteEmailTemplateRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{47} -} - -func (x *DeleteEmailTemplateRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -type DeleteEmailTemplateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *DeleteEmailTemplateResponse) Reset() { - *x = DeleteEmailTemplateResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteEmailTemplateResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteEmailTemplateResponse) ProtoMessage() {} - -func (x *DeleteEmailTemplateResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[48] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteEmailTemplateResponse.ProtoReflect.Descriptor instead. -func (*DeleteEmailTemplateResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{48} -} - -func (x *DeleteEmailTemplateResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type EmailTemplatesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *PaginationRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *EmailTemplatesRequest) Reset() { - *x = EmailTemplatesRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *EmailTemplatesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EmailTemplatesRequest) ProtoMessage() {} - -func (x *EmailTemplatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[49] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use EmailTemplatesRequest.ProtoReflect.Descriptor instead. -func (*EmailTemplatesRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{49} -} - -func (x *EmailTemplatesRequest) GetPagination() *PaginationRequest { - if x != nil { - return x.Pagination - } - return nil -} - -type EmailTemplatesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EmailTemplates []*EmailTemplate `protobuf:"bytes,1,rep,name=email_templates,json=emailTemplates,proto3" json:"email_templates,omitempty"` - Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *EmailTemplatesResponse) Reset() { - *x = EmailTemplatesResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *EmailTemplatesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EmailTemplatesResponse) ProtoMessage() {} - -func (x *EmailTemplatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[50] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use EmailTemplatesResponse.ProtoReflect.Descriptor instead. -func (*EmailTemplatesResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{50} -} - -func (x *EmailTemplatesResponse) GetEmailTemplates() []*EmailTemplate { - if x != nil { - return x.EmailTemplates - } - return nil -} - -func (x *EmailTemplatesResponse) GetPagination() *Pagination { - if x != nil { - return x.Pagination - } - return nil -} - -// AuditLog mirrors model.AuditLog field-for-field. -type AuditLog struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ActorId string `protobuf:"bytes,2,opt,name=actor_id,json=actorId,proto3" json:"actor_id,omitempty"` - ActorType string `protobuf:"bytes,3,opt,name=actor_type,json=actorType,proto3" json:"actor_type,omitempty"` - ActorEmail string `protobuf:"bytes,4,opt,name=actor_email,json=actorEmail,proto3" json:"actor_email,omitempty"` - Action string `protobuf:"bytes,5,opt,name=action,proto3" json:"action,omitempty"` - ResourceType string `protobuf:"bytes,6,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` - ResourceId string `protobuf:"bytes,7,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"` - IpAddress string `protobuf:"bytes,8,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` - UserAgent string `protobuf:"bytes,9,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"` - Metadata string `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"` - CreatedAt int64 `protobuf:"varint,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` -} - -func (x *AuditLog) Reset() { - *x = AuditLog{} - mi := &file_authorizer_v1_admin_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AuditLog) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AuditLog) ProtoMessage() {} - -func (x *AuditLog) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[51] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AuditLog.ProtoReflect.Descriptor instead. -func (*AuditLog) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{51} -} - -func (x *AuditLog) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *AuditLog) GetActorId() string { - if x != nil { - return x.ActorId - } - return "" -} - -func (x *AuditLog) GetActorType() string { - if x != nil { - return x.ActorType - } - return "" -} - -func (x *AuditLog) GetActorEmail() string { - if x != nil { - return x.ActorEmail - } - return "" -} - -func (x *AuditLog) GetAction() string { - if x != nil { - return x.Action - } - return "" -} - -func (x *AuditLog) GetResourceType() string { - if x != nil { - return x.ResourceType - } - return "" -} - -func (x *AuditLog) GetResourceId() string { - if x != nil { - return x.ResourceId - } - return "" -} - -func (x *AuditLog) GetIpAddress() string { - if x != nil { - return x.IpAddress - } - return "" -} - -func (x *AuditLog) GetUserAgent() string { - if x != nil { - return x.UserAgent - } - return "" -} - -func (x *AuditLog) GetMetadata() string { - if x != nil { - return x.Metadata - } - return "" -} - -func (x *AuditLog) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -// AuditLogsRequest mirrors model.ListAuditLogRequest. All filter fields are -// optional; when unset no filtering is applied for that field. -type AuditLogsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *PaginationRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` - Action *string `protobuf:"bytes,2,opt,name=action,proto3,oneof" json:"action,omitempty"` - ActorId *string `protobuf:"bytes,3,opt,name=actor_id,json=actorId,proto3,oneof" json:"actor_id,omitempty"` - ResourceType *string `protobuf:"bytes,4,opt,name=resource_type,json=resourceType,proto3,oneof" json:"resource_type,omitempty"` - ResourceId *string `protobuf:"bytes,5,opt,name=resource_id,json=resourceId,proto3,oneof" json:"resource_id,omitempty"` - FromTimestamp *int64 `protobuf:"varint,6,opt,name=from_timestamp,json=fromTimestamp,proto3,oneof" json:"from_timestamp,omitempty"` - ToTimestamp *int64 `protobuf:"varint,7,opt,name=to_timestamp,json=toTimestamp,proto3,oneof" json:"to_timestamp,omitempty"` -} - -func (x *AuditLogsRequest) Reset() { - *x = AuditLogsRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AuditLogsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AuditLogsRequest) ProtoMessage() {} - -func (x *AuditLogsRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[52] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AuditLogsRequest.ProtoReflect.Descriptor instead. -func (*AuditLogsRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{52} -} - -func (x *AuditLogsRequest) GetPagination() *PaginationRequest { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *AuditLogsRequest) GetAction() string { - if x != nil && x.Action != nil { - return *x.Action - } - return "" -} - -func (x *AuditLogsRequest) GetActorId() string { - if x != nil && x.ActorId != nil { - return *x.ActorId - } - return "" -} - -func (x *AuditLogsRequest) GetResourceType() string { - if x != nil && x.ResourceType != nil { - return *x.ResourceType - } - return "" -} - -func (x *AuditLogsRequest) GetResourceId() string { - if x != nil && x.ResourceId != nil { - return *x.ResourceId - } - return "" -} - -func (x *AuditLogsRequest) GetFromTimestamp() int64 { - if x != nil && x.FromTimestamp != nil { - return *x.FromTimestamp - } - return 0 -} - -func (x *AuditLogsRequest) GetToTimestamp() int64 { - if x != nil && x.ToTimestamp != nil { - return *x.ToTimestamp - } - return 0 -} - -type AuditLogsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AuditLogs []*AuditLog `protobuf:"bytes,1,rep,name=audit_logs,json=auditLogs,proto3" json:"audit_logs,omitempty"` - Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *AuditLogsResponse) Reset() { - *x = AuditLogsResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AuditLogsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AuditLogsResponse) ProtoMessage() {} - -func (x *AuditLogsResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[53] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AuditLogsResponse.ProtoReflect.Descriptor instead. -func (*AuditLogsResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{53} -} - -func (x *AuditLogsResponse) GetAuditLogs() []*AuditLog { - if x != nil { - return x.AuditLogs - } - return nil -} - -func (x *AuditLogsResponse) GetPagination() *Pagination { - if x != nil { - return x.Pagination - } - return nil -} - -// FgaModel is a fine-grained authorization model: its id and DSL form. Mirrors -// model.FgaModel field-for-field. An empty model (both fields empty) is the -// valid "no model written yet" state. -type FgaModel struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Dsl string `protobuf:"bytes,2,opt,name=dsl,proto3" json:"dsl,omitempty"` -} - -func (x *FgaModel) Reset() { - *x = FgaModel{} - mi := &file_authorizer_v1_admin_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaModel) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaModel) ProtoMessage() {} - -func (x *FgaModel) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[54] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaModel.ProtoReflect.Descriptor instead. -func (*FgaModel) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{54} -} - -func (x *FgaModel) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *FgaModel) GetDsl() string { - if x != nil { - return x.Dsl - } - return "" -} - -// FgaTuple is one persisted relationship tuple returned by FgaReadTuples. -// Mirrors model.FgaTuple field-for-field (the read shape; writes use the shared -// FgaTupleInput). -type FgaTuple struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` - Relation string `protobuf:"bytes,2,opt,name=relation,proto3" json:"relation,omitempty"` - Object string `protobuf:"bytes,3,opt,name=object,proto3" json:"object,omitempty"` -} - -func (x *FgaTuple) Reset() { - *x = FgaTuple{} - mi := &file_authorizer_v1_admin_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaTuple) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaTuple) ProtoMessage() {} - -func (x *FgaTuple) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[55] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaTuple.ProtoReflect.Descriptor instead. -func (*FgaTuple) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{55} -} - -func (x *FgaTuple) GetUser() string { - if x != nil { - return x.User - } - return "" -} - -func (x *FgaTuple) GetRelation() string { - if x != nil { - return x.Relation - } - return "" -} - -func (x *FgaTuple) GetObject() string { - if x != nil { - return x.Object - } - return "" -} - -// FgaGetModelRequest takes no parameters; the active model is implied. -type FgaGetModelRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *FgaGetModelRequest) Reset() { - *x = FgaGetModelRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaGetModelRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaGetModelRequest) ProtoMessage() {} - -func (x *FgaGetModelRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[56] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaGetModelRequest.ProtoReflect.Descriptor instead. -func (*FgaGetModelRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{56} -} - -type FgaGetModelResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Model *FgaModel `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` -} - -func (x *FgaGetModelResponse) Reset() { - *x = FgaGetModelResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaGetModelResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaGetModelResponse) ProtoMessage() {} - -func (x *FgaGetModelResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[57] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaGetModelResponse.ProtoReflect.Descriptor instead. -func (*FgaGetModelResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{57} -} - -func (x *FgaGetModelResponse) GetModel() *FgaModel { - if x != nil { - return x.Model - } - return nil -} - -// FgaWriteModelRequest mirrors model.FgaWriteModelInput (the model DSL). -type FgaWriteModelRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Dsl string `protobuf:"bytes,1,opt,name=dsl,proto3" json:"dsl,omitempty"` -} - -func (x *FgaWriteModelRequest) Reset() { - *x = FgaWriteModelRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaWriteModelRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaWriteModelRequest) ProtoMessage() {} - -func (x *FgaWriteModelRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[58] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaWriteModelRequest.ProtoReflect.Descriptor instead. -func (*FgaWriteModelRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{58} -} - -func (x *FgaWriteModelRequest) GetDsl() string { - if x != nil { - return x.Dsl - } - return "" -} - -type FgaWriteModelResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Model *FgaModel `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` -} - -func (x *FgaWriteModelResponse) Reset() { - *x = FgaWriteModelResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaWriteModelResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaWriteModelResponse) ProtoMessage() {} - -func (x *FgaWriteModelResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[59] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaWriteModelResponse.ProtoReflect.Descriptor instead. -func (*FgaWriteModelResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{59} -} - -func (x *FgaWriteModelResponse) GetModel() *FgaModel { - if x != nil { - return x.Model - } - return nil -} - -// FgaWriteTuplesRequest mirrors model.FgaWriteTuplesInput, reusing the shared -// FgaTupleInput message. -type FgaWriteTuplesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Tuples []*FgaTupleInput `protobuf:"bytes,1,rep,name=tuples,proto3" json:"tuples,omitempty"` -} - -func (x *FgaWriteTuplesRequest) Reset() { - *x = FgaWriteTuplesRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaWriteTuplesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaWriteTuplesRequest) ProtoMessage() {} - -func (x *FgaWriteTuplesRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[60] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaWriteTuplesRequest.ProtoReflect.Descriptor instead. -func (*FgaWriteTuplesRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{60} -} - -func (x *FgaWriteTuplesRequest) GetTuples() []*FgaTupleInput { - if x != nil { - return x.Tuples - } - return nil -} - -type FgaWriteTuplesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *FgaWriteTuplesResponse) Reset() { - *x = FgaWriteTuplesResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaWriteTuplesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaWriteTuplesResponse) ProtoMessage() {} - -func (x *FgaWriteTuplesResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[61] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaWriteTuplesResponse.ProtoReflect.Descriptor instead. -func (*FgaWriteTuplesResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{61} -} - -func (x *FgaWriteTuplesResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// FgaDeleteTuplesRequest mirrors model.FgaWriteTuplesInput (same shape as a -// write; the tuples to remove). -type FgaDeleteTuplesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Tuples []*FgaTupleInput `protobuf:"bytes,1,rep,name=tuples,proto3" json:"tuples,omitempty"` -} - -func (x *FgaDeleteTuplesRequest) Reset() { - *x = FgaDeleteTuplesRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaDeleteTuplesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaDeleteTuplesRequest) ProtoMessage() {} - -func (x *FgaDeleteTuplesRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[62] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaDeleteTuplesRequest.ProtoReflect.Descriptor instead. -func (*FgaDeleteTuplesRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{62} -} - -func (x *FgaDeleteTuplesRequest) GetTuples() []*FgaTupleInput { - if x != nil { - return x.Tuples - } - return nil -} - -type FgaDeleteTuplesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *FgaDeleteTuplesResponse) Reset() { - *x = FgaDeleteTuplesResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaDeleteTuplesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaDeleteTuplesResponse) ProtoMessage() {} - -func (x *FgaDeleteTuplesResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[63] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaDeleteTuplesResponse.ProtoReflect.Descriptor instead. -func (*FgaDeleteTuplesResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{63} -} - -func (x *FgaDeleteTuplesResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// FgaReadTuplesRequest mirrors model.FgaReadTuplesInput. All filter fields are -// optional; an empty filter reads all tuples (paginated). -type FgaReadTuplesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - User *string `protobuf:"bytes,1,opt,name=user,proto3,oneof" json:"user,omitempty"` - Relation *string `protobuf:"bytes,2,opt,name=relation,proto3,oneof" json:"relation,omitempty"` - Object *string `protobuf:"bytes,3,opt,name=object,proto3,oneof" json:"object,omitempty"` - PageSize *int64 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3,oneof" json:"page_size,omitempty"` - ContinuationToken *string `protobuf:"bytes,5,opt,name=continuation_token,json=continuationToken,proto3,oneof" json:"continuation_token,omitempty"` -} - -func (x *FgaReadTuplesRequest) Reset() { - *x = FgaReadTuplesRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaReadTuplesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaReadTuplesRequest) ProtoMessage() {} - -func (x *FgaReadTuplesRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[64] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaReadTuplesRequest.ProtoReflect.Descriptor instead. -func (*FgaReadTuplesRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{64} -} - -func (x *FgaReadTuplesRequest) GetUser() string { - if x != nil && x.User != nil { - return *x.User - } - return "" -} - -func (x *FgaReadTuplesRequest) GetRelation() string { - if x != nil && x.Relation != nil { - return *x.Relation - } - return "" -} - -func (x *FgaReadTuplesRequest) GetObject() string { - if x != nil && x.Object != nil { - return *x.Object - } - return "" -} - -func (x *FgaReadTuplesRequest) GetPageSize() int64 { - if x != nil && x.PageSize != nil { - return *x.PageSize - } - return 0 -} - -func (x *FgaReadTuplesRequest) GetContinuationToken() string { - if x != nil && x.ContinuationToken != nil { - return *x.ContinuationToken - } - return "" -} - -type FgaReadTuplesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Tuples []*FgaTuple `protobuf:"bytes,1,rep,name=tuples,proto3" json:"tuples,omitempty"` - ContinuationToken *string `protobuf:"bytes,2,opt,name=continuation_token,json=continuationToken,proto3,oneof" json:"continuation_token,omitempty"` -} - -func (x *FgaReadTuplesResponse) Reset() { - *x = FgaReadTuplesResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaReadTuplesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaReadTuplesResponse) ProtoMessage() {} - -func (x *FgaReadTuplesResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[65] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaReadTuplesResponse.ProtoReflect.Descriptor instead. -func (*FgaReadTuplesResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{65} -} - -func (x *FgaReadTuplesResponse) GetTuples() []*FgaTuple { - if x != nil { - return x.Tuples - } - return nil -} - -func (x *FgaReadTuplesResponse) GetContinuationToken() string { - if x != nil && x.ContinuationToken != nil { - return *x.ContinuationToken - } - return "" -} - -// FgaListUsersRequest mirrors model.FgaListUsersInput. -type FgaListUsersRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Object string `protobuf:"bytes,1,opt,name=object,proto3" json:"object,omitempty"` - Relation string `protobuf:"bytes,2,opt,name=relation,proto3" json:"relation,omitempty"` - UserType string `protobuf:"bytes,3,opt,name=user_type,json=userType,proto3" json:"user_type,omitempty"` -} - -func (x *FgaListUsersRequest) Reset() { - *x = FgaListUsersRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaListUsersRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaListUsersRequest) ProtoMessage() {} - -func (x *FgaListUsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[66] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaListUsersRequest.ProtoReflect.Descriptor instead. -func (*FgaListUsersRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{66} -} - -func (x *FgaListUsersRequest) GetObject() string { - if x != nil { - return x.Object - } - return "" -} - -func (x *FgaListUsersRequest) GetRelation() string { - if x != nil { - return x.Relation - } - return "" -} - -func (x *FgaListUsersRequest) GetUserType() string { - if x != nil { - return x.UserType - } - return "" -} - -type FgaListUsersResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Users []string `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` -} - -func (x *FgaListUsersResponse) Reset() { - *x = FgaListUsersResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaListUsersResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaListUsersResponse) ProtoMessage() {} - -func (x *FgaListUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[67] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaListUsersResponse.ProtoReflect.Descriptor instead. -func (*FgaListUsersResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{67} -} - -func (x *FgaListUsersResponse) GetUsers() []string { - if x != nil { - return x.Users - } - return nil -} - -// FgaExpandRequest mirrors model.FgaExpandInput. -type FgaExpandRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Relation string `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` - Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` -} - -func (x *FgaExpandRequest) Reset() { - *x = FgaExpandRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaExpandRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaExpandRequest) ProtoMessage() {} - -func (x *FgaExpandRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[68] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaExpandRequest.ProtoReflect.Descriptor instead. -func (*FgaExpandRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{68} -} - -func (x *FgaExpandRequest) GetRelation() string { - if x != nil { - return x.Relation - } - return "" -} - -func (x *FgaExpandRequest) GetObject() string { - if x != nil { - return x.Object - } - return "" -} - -type FgaExpandResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Tree string `protobuf:"bytes,1,opt,name=tree,proto3" json:"tree,omitempty"` -} - -func (x *FgaExpandResponse) Reset() { - *x = FgaExpandResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaExpandResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaExpandResponse) ProtoMessage() {} - -func (x *FgaExpandResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[69] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaExpandResponse.ProtoReflect.Descriptor instead. -func (*FgaExpandResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{69} -} - -func (x *FgaExpandResponse) GetTree() string { - if x != nil { - return x.Tree - } - return "" -} - -// FgaResetRequest takes no parameters; the whole store is reset. -type FgaResetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *FgaResetRequest) Reset() { - *x = FgaResetRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaResetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaResetRequest) ProtoMessage() {} - -func (x *FgaResetRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[70] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaResetRequest.ProtoReflect.Descriptor instead. -func (*FgaResetRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{70} -} - -type FgaResetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *FgaResetResponse) Reset() { - *x = FgaResetResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaResetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaResetResponse) ProtoMessage() {} - -func (x *FgaResetResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[71] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaResetResponse.ProtoReflect.Descriptor instead. -func (*FgaResetResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{71} -} - -func (x *FgaResetResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// Client mirrors model.Client field-for-field. The client -// secret is deliberately ABSENT (matching the GraphQL type): it is surfaced -// exactly once, only via CreateClientResponse.client_secret, and is -// never returned by any get/list/update path. -type Client struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - 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"` - AllowedScopes []string `protobuf:"bytes,4,rep,name=allowed_scopes,json=allowedScopes,proto3" json:"allowed_scopes,omitempty"` - IsActive bool `protobuf:"varint,5,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` - CreatedAt int64 `protobuf:"varint,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt int64 `protobuf:"varint,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // client_id is the public OAuth identifier presented at the authorize/token - // endpoints, distinct from id (internal surrogate key). - ClientId string `protobuf:"bytes,8,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` -} - -func (x *Client) Reset() { - *x = Client{} - mi := &file_authorizer_v1_admin_proto_msgTypes[72] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Client) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Client) ProtoMessage() {} - -func (x *Client) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[72] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Client.ProtoReflect.Descriptor instead. -func (*Client) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{72} -} - -func (x *Client) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *Client) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *Client) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *Client) GetAllowedScopes() []string { - if x != nil { - return x.AllowedScopes - } - return nil -} - -func (x *Client) GetIsActive() bool { - if x != nil { - return x.IsActive - } - return false -} - -func (x *Client) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *Client) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *Client) GetClientId() string { - if x != nil { - return x.ClientId - } - return "" -} - -// CreateClientRequest mirrors model.CreateClientRequest. -// description is optional; allowed_scopes must be non-empty (an empty scope set -// is DENY-ALL and is rejected by the service layer). -type CreateClientRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"` - AllowedScopes []string `protobuf:"bytes,3,rep,name=allowed_scopes,json=allowedScopes,proto3" json:"allowed_scopes,omitempty"` -} - -func (x *CreateClientRequest) Reset() { - *x = CreateClientRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[73] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *CreateClientRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateClientRequest) ProtoMessage() {} - -func (x *CreateClientRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[73] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CreateClientRequest.ProtoReflect.Descriptor instead. -func (*CreateClientRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{73} -} - -func (x *CreateClientRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *CreateClientRequest) GetDescription() string { - if x != nil && x.Description != nil { - return *x.Description - } - return "" -} - -func (x *CreateClientRequest) GetAllowedScopes() []string { - if x != nil { - return x.AllowedScopes - } - return nil -} - -// CreateClientResponse carries the created service account plus the -// plaintext client_secret, returned exactly once. This is the ONLY admin -// message with a secret field; RotateClientSecret reuses it. -type CreateClientResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Client *Client `protobuf:"bytes,1,opt,name=client,proto3" json:"client,omitempty"` - ClientSecret string `protobuf:"bytes,2,opt,name=client_secret,json=clientSecret,proto3" json:"client_secret,omitempty"` -} - -func (x *CreateClientResponse) Reset() { - *x = CreateClientResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[74] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *CreateClientResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateClientResponse) ProtoMessage() {} - -func (x *CreateClientResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[74] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CreateClientResponse.ProtoReflect.Descriptor instead. -func (*CreateClientResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{74} -} - -func (x *CreateClientResponse) GetClient() *Client { - if x != nil { - return x.Client - } - return nil -} - -func (x *CreateClientResponse) GetClientSecret() string { - if x != nil { - return x.ClientSecret - } - return "" -} - -// UpdateClientRequest mirrors model.UpdateClientRequest. -// Nullable GraphQL inputs use proto3 `optional`. allowed_scopes, when non-empty, -// replaces the scope set; the service rejects a set that normalizes to empty. -type UpdateClientRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` - Description *string `protobuf:"bytes,3,opt,name=description,proto3,oneof" json:"description,omitempty"` - AllowedScopes []string `protobuf:"bytes,4,rep,name=allowed_scopes,json=allowedScopes,proto3" json:"allowed_scopes,omitempty"` - IsActive *bool `protobuf:"varint,5,opt,name=is_active,json=isActive,proto3,oneof" json:"is_active,omitempty"` -} - -func (x *UpdateClientRequest) Reset() { - *x = UpdateClientRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateClientRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateClientRequest) ProtoMessage() {} - -func (x *UpdateClientRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[75] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateClientRequest.ProtoReflect.Descriptor instead. -func (*UpdateClientRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{75} -} - -func (x *UpdateClientRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *UpdateClientRequest) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *UpdateClientRequest) GetDescription() string { - if x != nil && x.Description != nil { - return *x.Description - } - return "" -} - -func (x *UpdateClientRequest) GetAllowedScopes() []string { - if x != nil { - return x.AllowedScopes - } - return nil -} - -func (x *UpdateClientRequest) GetIsActive() bool { - if x != nil && x.IsActive != nil { - return *x.IsActive - } - return false -} - -type UpdateClientResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Client *Client `protobuf:"bytes,1,opt,name=client,proto3" json:"client,omitempty"` -} - -func (x *UpdateClientResponse) Reset() { - *x = UpdateClientResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[76] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateClientResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateClientResponse) ProtoMessage() {} - -func (x *UpdateClientResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[76] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateClientResponse.ProtoReflect.Descriptor instead. -func (*UpdateClientResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{76} -} - -func (x *UpdateClientResponse) GetClient() *Client { - if x != nil { - return x.Client - } - return nil -} - -// DeleteClientRequest mirrors model.ClientRequest (a single -// service account id). Kept distinct from GetClientRequest and -// RotateClientSecretRequest per buf's one-message-per-RPC rule. -type DeleteClientRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *DeleteClientRequest) Reset() { - *x = DeleteClientRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[77] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteClientRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteClientRequest) ProtoMessage() {} - -func (x *DeleteClientRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[77] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteClientRequest.ProtoReflect.Descriptor instead. -func (*DeleteClientRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{77} -} - -func (x *DeleteClientRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -type DeleteClientResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *DeleteClientResponse) Reset() { - *x = DeleteClientResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[78] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteClientResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteClientResponse) ProtoMessage() {} - -func (x *DeleteClientResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[78] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteClientResponse.ProtoReflect.Descriptor instead. -func (*DeleteClientResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{78} -} - -func (x *DeleteClientResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// RotateClientSecretRequest mirrors model.ClientRequest (a -// single service account id). Kept distinct from DeleteClientRequest and -// GetClientRequest per buf's one-message-per-RPC rule. -type RotateClientSecretRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *RotateClientSecretRequest) Reset() { - *x = RotateClientSecretRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[79] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *RotateClientSecretRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RotateClientSecretRequest) ProtoMessage() {} - -func (x *RotateClientSecretRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[79] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RotateClientSecretRequest.ProtoReflect.Descriptor instead. -func (*RotateClientSecretRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{79} -} - -func (x *RotateClientSecretRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -// GetClientRequest mirrors model.ClientRequest (a single service -// account id). Kept distinct from DeleteClientRequest and -// RotateClientSecretRequest per buf's one-message-per-RPC rule. -type GetClientRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *GetClientRequest) Reset() { - *x = GetClientRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[80] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetClientRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetClientRequest) ProtoMessage() {} - -func (x *GetClientRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[80] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetClientRequest.ProtoReflect.Descriptor instead. -func (*GetClientRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{80} -} - -func (x *GetClientRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -type GetClientResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Client *Client `protobuf:"bytes,1,opt,name=client,proto3" json:"client,omitempty"` -} - -func (x *GetClientResponse) Reset() { - *x = GetClientResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[81] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetClientResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetClientResponse) ProtoMessage() {} - -func (x *GetClientResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[81] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetClientResponse.ProtoReflect.Descriptor instead. -func (*GetClientResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{81} -} - -func (x *GetClientResponse) GetClient() *Client { - if x != nil { - return x.Client - } - return nil -} - -type ClientsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *PaginationRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *ClientsRequest) Reset() { - *x = ClientsRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[82] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ClientsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ClientsRequest) ProtoMessage() {} - -func (x *ClientsRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[82] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ClientsRequest.ProtoReflect.Descriptor instead. -func (*ClientsRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{82} -} - -func (x *ClientsRequest) GetPagination() *PaginationRequest { - if x != nil { - return x.Pagination - } - return nil -} - -type ClientsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Clients []*Client `protobuf:"bytes,1,rep,name=clients,proto3" json:"clients,omitempty"` - Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *ClientsResponse) Reset() { - *x = ClientsResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[83] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ClientsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ClientsResponse) ProtoMessage() {} - -func (x *ClientsResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[83] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ClientsResponse.ProtoReflect.Descriptor instead. -func (*ClientsResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{83} -} - -func (x *ClientsResponse) GetClients() []*Client { - if x != nil { - return x.Clients - } - return nil -} - -func (x *ClientsResponse) GetPagination() *Pagination { - if x != nil { - return x.Pagination - } - return nil -} - -// TrustedIssuer mirrors model.TrustedIssuer field-for-field. It references its -// parent via service_account_id (not app_id). Optional pointer fields collapse -// to zero values on the wire. -type TrustedIssuer struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ServiceAccountId string `protobuf:"bytes,2,opt,name=service_account_id,json=serviceAccountId,proto3" json:"service_account_id,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - IssuerUrl string `protobuf:"bytes,4,opt,name=issuer_url,json=issuerUrl,proto3" json:"issuer_url,omitempty"` - KeySourceType string `protobuf:"bytes,5,opt,name=key_source_type,json=keySourceType,proto3" json:"key_source_type,omitempty"` - JwksUrl string `protobuf:"bytes,6,opt,name=jwks_url,json=jwksUrl,proto3" json:"jwks_url,omitempty"` - ExpectedAud string `protobuf:"bytes,7,opt,name=expected_aud,json=expectedAud,proto3" json:"expected_aud,omitempty"` - SubjectClaim string `protobuf:"bytes,8,opt,name=subject_claim,json=subjectClaim,proto3" json:"subject_claim,omitempty"` - IssuerType string `protobuf:"bytes,9,opt,name=issuer_type,json=issuerType,proto3" json:"issuer_type,omitempty"` - IsActive bool `protobuf:"varint,10,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` - SpiffeRefreshHintSeconds int64 `protobuf:"varint,11,opt,name=spiffe_refresh_hint_seconds,json=spiffeRefreshHintSeconds,proto3" json:"spiffe_refresh_hint_seconds,omitempty"` - CreatedAt int64 `protobuf:"varint,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt int64 `protobuf:"varint,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // allowed_subjects: comma-separated exact subject allow-list. Empty = deny-all. - AllowedSubjects string `protobuf:"bytes,14,opt,name=allowed_subjects,json=allowedSubjects,proto3" json:"allowed_subjects,omitempty"` -} - -func (x *TrustedIssuer) Reset() { - *x = TrustedIssuer{} - mi := &file_authorizer_v1_admin_proto_msgTypes[84] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *TrustedIssuer) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TrustedIssuer) ProtoMessage() {} - -func (x *TrustedIssuer) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[84] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TrustedIssuer.ProtoReflect.Descriptor instead. -func (*TrustedIssuer) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{84} -} - -func (x *TrustedIssuer) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *TrustedIssuer) GetServiceAccountId() string { - if x != nil { - return x.ServiceAccountId - } - return "" -} - -func (x *TrustedIssuer) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *TrustedIssuer) GetIssuerUrl() string { - if x != nil { - return x.IssuerUrl - } - return "" -} - -func (x *TrustedIssuer) GetKeySourceType() string { - if x != nil { - return x.KeySourceType - } - return "" -} - -func (x *TrustedIssuer) GetJwksUrl() string { - if x != nil { - return x.JwksUrl - } - return "" -} - -func (x *TrustedIssuer) GetExpectedAud() string { - if x != nil { - return x.ExpectedAud - } - return "" -} - -func (x *TrustedIssuer) GetSubjectClaim() string { - if x != nil { - return x.SubjectClaim - } - return "" -} - -func (x *TrustedIssuer) GetIssuerType() string { - if x != nil { - return x.IssuerType - } - return "" -} - -func (x *TrustedIssuer) GetIsActive() bool { - if x != nil { - return x.IsActive - } - return false -} - -func (x *TrustedIssuer) GetSpiffeRefreshHintSeconds() int64 { - if x != nil { - return x.SpiffeRefreshHintSeconds - } - return 0 -} - -func (x *TrustedIssuer) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *TrustedIssuer) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *TrustedIssuer) GetAllowedSubjects() string { - if x != nil { - return x.AllowedSubjects - } - return "" -} - -// AddTrustedIssuerRequest mirrors model.AddTrustedIssuerRequest. jwks_url, -// subject_claim, and spiffe_refresh_hint_seconds are optional; subject_claim -// defaults to "sub" when unset. -type AddTrustedIssuerRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ServiceAccountId string `protobuf:"bytes,1,opt,name=service_account_id,json=serviceAccountId,proto3" json:"service_account_id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - IssuerUrl string `protobuf:"bytes,3,opt,name=issuer_url,json=issuerUrl,proto3" json:"issuer_url,omitempty"` - KeySourceType string `protobuf:"bytes,4,opt,name=key_source_type,json=keySourceType,proto3" json:"key_source_type,omitempty"` - JwksUrl *string `protobuf:"bytes,5,opt,name=jwks_url,json=jwksUrl,proto3,oneof" json:"jwks_url,omitempty"` - ExpectedAud string `protobuf:"bytes,6,opt,name=expected_aud,json=expectedAud,proto3" json:"expected_aud,omitempty"` - SubjectClaim *string `protobuf:"bytes,7,opt,name=subject_claim,json=subjectClaim,proto3,oneof" json:"subject_claim,omitempty"` - IssuerType string `protobuf:"bytes,8,opt,name=issuer_type,json=issuerType,proto3" json:"issuer_type,omitempty"` - SpiffeRefreshHintSeconds *int64 `protobuf:"varint,9,opt,name=spiffe_refresh_hint_seconds,json=spiffeRefreshHintSeconds,proto3,oneof" json:"spiffe_refresh_hint_seconds,omitempty"` - // allowed_subjects: comma-separated exact subject allow-list. Omitted = deny-all. - AllowedSubjects *string `protobuf:"bytes,10,opt,name=allowed_subjects,json=allowedSubjects,proto3,oneof" json:"allowed_subjects,omitempty"` -} - -func (x *AddTrustedIssuerRequest) Reset() { - *x = AddTrustedIssuerRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[85] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AddTrustedIssuerRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddTrustedIssuerRequest) ProtoMessage() {} - -func (x *AddTrustedIssuerRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[85] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddTrustedIssuerRequest.ProtoReflect.Descriptor instead. -func (*AddTrustedIssuerRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{85} -} - -func (x *AddTrustedIssuerRequest) GetServiceAccountId() string { - if x != nil { - return x.ServiceAccountId - } - return "" -} - -func (x *AddTrustedIssuerRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *AddTrustedIssuerRequest) GetIssuerUrl() string { - if x != nil { - return x.IssuerUrl - } - return "" -} - -func (x *AddTrustedIssuerRequest) GetKeySourceType() string { - if x != nil { - return x.KeySourceType - } - return "" -} - -func (x *AddTrustedIssuerRequest) GetJwksUrl() string { - if x != nil && x.JwksUrl != nil { - return *x.JwksUrl - } - return "" -} - -func (x *AddTrustedIssuerRequest) GetExpectedAud() string { - if x != nil { - return x.ExpectedAud - } - return "" -} - -func (x *AddTrustedIssuerRequest) GetSubjectClaim() string { - if x != nil && x.SubjectClaim != nil { - return *x.SubjectClaim - } - return "" -} - -func (x *AddTrustedIssuerRequest) GetIssuerType() string { - if x != nil { - return x.IssuerType - } - return "" -} - -func (x *AddTrustedIssuerRequest) GetSpiffeRefreshHintSeconds() int64 { - if x != nil && x.SpiffeRefreshHintSeconds != nil { - return *x.SpiffeRefreshHintSeconds - } - return 0 -} - -func (x *AddTrustedIssuerRequest) GetAllowedSubjects() string { - if x != nil && x.AllowedSubjects != nil { - return *x.AllowedSubjects - } - return "" -} - -type AddTrustedIssuerResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TrustedIssuer *TrustedIssuer `protobuf:"bytes,1,opt,name=trusted_issuer,json=trustedIssuer,proto3" json:"trusted_issuer,omitempty"` -} - -func (x *AddTrustedIssuerResponse) Reset() { - *x = AddTrustedIssuerResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[86] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AddTrustedIssuerResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddTrustedIssuerResponse) ProtoMessage() {} - -func (x *AddTrustedIssuerResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[86] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddTrustedIssuerResponse.ProtoReflect.Descriptor instead. -func (*AddTrustedIssuerResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{86} -} - -func (x *AddTrustedIssuerResponse) GetTrustedIssuer() *TrustedIssuer { - if x != nil { - return x.TrustedIssuer - } - return nil -} - -// UpdateTrustedIssuerRequest mirrors model.UpdateTrustedIssuerRequest. Nullable -// GraphQL inputs use proto3 `optional` so an unset field is distinguishable from -// an empty value. -type UpdateTrustedIssuerRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` - JwksUrl *string `protobuf:"bytes,3,opt,name=jwks_url,json=jwksUrl,proto3,oneof" json:"jwks_url,omitempty"` - ExpectedAud *string `protobuf:"bytes,4,opt,name=expected_aud,json=expectedAud,proto3,oneof" json:"expected_aud,omitempty"` - IsActive *bool `protobuf:"varint,5,opt,name=is_active,json=isActive,proto3,oneof" json:"is_active,omitempty"` - SpiffeRefreshHintSeconds *int64 `protobuf:"varint,6,opt,name=spiffe_refresh_hint_seconds,json=spiffeRefreshHintSeconds,proto3,oneof" json:"spiffe_refresh_hint_seconds,omitempty"` - // allowed_subjects: comma-separated exact subject allow-list. Empty = deny-all. - AllowedSubjects *string `protobuf:"bytes,7,opt,name=allowed_subjects,json=allowedSubjects,proto3,oneof" json:"allowed_subjects,omitempty"` -} - -func (x *UpdateTrustedIssuerRequest) Reset() { - *x = UpdateTrustedIssuerRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[87] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateTrustedIssuerRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateTrustedIssuerRequest) ProtoMessage() {} - -func (x *UpdateTrustedIssuerRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[87] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateTrustedIssuerRequest.ProtoReflect.Descriptor instead. -func (*UpdateTrustedIssuerRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{87} -} - -func (x *UpdateTrustedIssuerRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *UpdateTrustedIssuerRequest) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *UpdateTrustedIssuerRequest) GetJwksUrl() string { - if x != nil && x.JwksUrl != nil { - return *x.JwksUrl - } - return "" -} - -func (x *UpdateTrustedIssuerRequest) GetExpectedAud() string { - if x != nil && x.ExpectedAud != nil { - return *x.ExpectedAud - } - return "" -} - -func (x *UpdateTrustedIssuerRequest) GetIsActive() bool { - if x != nil && x.IsActive != nil { - return *x.IsActive - } - return false -} - -func (x *UpdateTrustedIssuerRequest) GetSpiffeRefreshHintSeconds() int64 { - if x != nil && x.SpiffeRefreshHintSeconds != nil { - return *x.SpiffeRefreshHintSeconds - } - return 0 -} - -func (x *UpdateTrustedIssuerRequest) GetAllowedSubjects() string { - if x != nil && x.AllowedSubjects != nil { - return *x.AllowedSubjects - } - return "" -} - -type UpdateTrustedIssuerResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TrustedIssuer *TrustedIssuer `protobuf:"bytes,1,opt,name=trusted_issuer,json=trustedIssuer,proto3" json:"trusted_issuer,omitempty"` -} - -func (x *UpdateTrustedIssuerResponse) Reset() { - *x = UpdateTrustedIssuerResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[88] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateTrustedIssuerResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateTrustedIssuerResponse) ProtoMessage() {} - -func (x *UpdateTrustedIssuerResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[88] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateTrustedIssuerResponse.ProtoReflect.Descriptor instead. -func (*UpdateTrustedIssuerResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{88} -} - -func (x *UpdateTrustedIssuerResponse) GetTrustedIssuer() *TrustedIssuer { - if x != nil { - return x.TrustedIssuer - } - return nil -} - -// DeleteTrustedIssuerRequest mirrors model.TrustedIssuerRequest (a single -// trusted issuer id). Kept distinct from GetTrustedIssuerRequest per buf's -// one-message-per-RPC rule. -type DeleteTrustedIssuerRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *DeleteTrustedIssuerRequest) Reset() { - *x = DeleteTrustedIssuerRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[89] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteTrustedIssuerRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteTrustedIssuerRequest) ProtoMessage() {} - -func (x *DeleteTrustedIssuerRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[89] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteTrustedIssuerRequest.ProtoReflect.Descriptor instead. -func (*DeleteTrustedIssuerRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{89} -} - -func (x *DeleteTrustedIssuerRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -type DeleteTrustedIssuerResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *DeleteTrustedIssuerResponse) Reset() { - *x = DeleteTrustedIssuerResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[90] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteTrustedIssuerResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteTrustedIssuerResponse) ProtoMessage() {} - -func (x *DeleteTrustedIssuerResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[90] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteTrustedIssuerResponse.ProtoReflect.Descriptor instead. -func (*DeleteTrustedIssuerResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{90} -} - -func (x *DeleteTrustedIssuerResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -// GetTrustedIssuerRequest mirrors model.TrustedIssuerRequest (a single trusted -// issuer id). Kept distinct from DeleteTrustedIssuerRequest per buf's -// one-message-per-RPC rule. -type GetTrustedIssuerRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *GetTrustedIssuerRequest) Reset() { - *x = GetTrustedIssuerRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[91] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetTrustedIssuerRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetTrustedIssuerRequest) ProtoMessage() {} - -func (x *GetTrustedIssuerRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[91] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetTrustedIssuerRequest.ProtoReflect.Descriptor instead. -func (*GetTrustedIssuerRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{91} -} - -func (x *GetTrustedIssuerRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -type GetTrustedIssuerResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TrustedIssuer *TrustedIssuer `protobuf:"bytes,1,opt,name=trusted_issuer,json=trustedIssuer,proto3" json:"trusted_issuer,omitempty"` -} - -func (x *GetTrustedIssuerResponse) Reset() { - *x = GetTrustedIssuerResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[92] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetTrustedIssuerResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetTrustedIssuerResponse) ProtoMessage() {} - -func (x *GetTrustedIssuerResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[92] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetTrustedIssuerResponse.ProtoReflect.Descriptor instead. -func (*GetTrustedIssuerResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{92} -} - -func (x *GetTrustedIssuerResponse) GetTrustedIssuer() *TrustedIssuer { - if x != nil { - return x.TrustedIssuer - } - return nil -} - -// TrustedIssuersRequest mirrors model.ListTrustedIssuersRequest. -// service_account_id is optional; when unset issuers for all accounts are -// returned. -type TrustedIssuersRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *PaginationRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` - ServiceAccountId *string `protobuf:"bytes,2,opt,name=service_account_id,json=serviceAccountId,proto3,oneof" json:"service_account_id,omitempty"` -} - -func (x *TrustedIssuersRequest) Reset() { - *x = TrustedIssuersRequest{} - mi := &file_authorizer_v1_admin_proto_msgTypes[93] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *TrustedIssuersRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TrustedIssuersRequest) ProtoMessage() {} - -func (x *TrustedIssuersRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[93] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TrustedIssuersRequest.ProtoReflect.Descriptor instead. -func (*TrustedIssuersRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{93} -} - -func (x *TrustedIssuersRequest) GetPagination() *PaginationRequest { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *TrustedIssuersRequest) GetServiceAccountId() string { - if x != nil && x.ServiceAccountId != nil { - return *x.ServiceAccountId - } - return "" -} - -type TrustedIssuersResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TrustedIssuers []*TrustedIssuer `protobuf:"bytes,1,rep,name=trusted_issuers,json=trustedIssuers,proto3" json:"trusted_issuers,omitempty"` - Pagination *Pagination `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` -} - -func (x *TrustedIssuersResponse) Reset() { - *x = TrustedIssuersResponse{} - mi := &file_authorizer_v1_admin_proto_msgTypes[94] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *TrustedIssuersResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TrustedIssuersResponse) ProtoMessage() {} - -func (x *TrustedIssuersResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_admin_proto_msgTypes[94] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TrustedIssuersResponse.ProtoReflect.Descriptor instead. -func (*TrustedIssuersResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_admin_proto_rawDescGZIP(), []int{94} -} - -func (x *TrustedIssuersResponse) GetTrustedIssuers() []*TrustedIssuer { - if x != nil { - return x.TrustedIssuers - } - return nil -} - -func (x *TrustedIssuersResponse) GetPagination() *Pagination { - if x != nil { - return x.Pagination - } - return nil -} - -var File_authorizer_v1_admin_proto protoreflect.FileDescriptor - -var file_authorizer_v1_admin_proto_rawDesc = []byte{ - 0x0a, 0x19, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3f, 0x0a, - 0x11, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x2e, - 0x0a, 0x12, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x14, - 0x0a, 0x12, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x2f, 0x0a, 0x13, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, - 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x30, 0x0a, 0x14, - 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x12, - 0x0a, 0x10, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x11, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x61, - 0x22, 0x6f, 0x0a, 0x09, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x14, 0x0a, - 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, - 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, - 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, - 0x73, 0x22, 0x50, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x75, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, - 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x0b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, - 0x37, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x9c, 0x06, 0x0a, 0x11, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x65, 0x6d, - 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, - 0x0a, 0x0a, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, - 0x0a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, - 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x05, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x06, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, - 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x07, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x26, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x70, 0x68, 0x6f, 0x6e, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x13, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x0a, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, - 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x1c, 0x69, 0x73, 0x5f, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x18, 0x69, - 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x75, 0x74, 0x68, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x70, - 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x61, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x67, - 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x61, - 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x69, - 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x67, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, - 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x69, 0x73, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x3d, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x32, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x2e, 0x0a, 0x12, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5f, 0x0a, 0x1b, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb2, 0x01, 0x0a, 0x1c, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x15, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x14, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x82, 0x02, 0x0a, 0x13, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x12, 0x1d, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, - 0x72, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x55, 0x72, 0x69, 0x22, 0x37, 0x0a, 0x13, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, - 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x30, - 0x0a, 0x14, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x22, 0x37, 0x0a, 0x13, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x14, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x67, 0x0a, 0x14, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x72, - 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, - 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x5f, 0x75, 0x72, 0x69, 0x22, 0x5c, 0x0a, 0x15, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, - 0x72, 0x73, 0x22, 0x8b, 0x02, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, - 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x12, 0x30, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0xd0, 0x01, 0x0a, 0x0a, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, - 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x77, 0x65, 0x62, 0x68, - 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x57, 0x65, 0x62, 0x68, 0x6f, - 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0a, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, - 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x30, 0x0a, 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x12, 0x30, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2e, 0x0a, 0x12, 0x41, 0x64, - 0x64, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb5, 0x02, 0x0a, 0x14, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0a, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x30, 0x0a, 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x22, 0x31, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, - 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x2f, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, - 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x2c, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x46, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x57, 0x65, - 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, - 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x57, - 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x07, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x22, - 0x53, 0x0a, 0x0f, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x10, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x77, 0x65, 0x62, - 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, - 0x6f, 0x6f, 0x6b, 0x52, 0x08, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x39, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x12, 0x57, 0x65, 0x62, - 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, - 0x6b, 0x5f, 0x69, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x13, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, - 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0c, - 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x52, 0x0b, 0x77, - 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xdc, 0x01, 0x0a, 0x13, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x11, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, - 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x42, 0x14, - 0x0a, 0x12, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x53, 0x0a, 0x14, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x68, 0x74, 0x74, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x0d, 0x45, 0x6d, - 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x45, 0x6d, - 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x07, 0x73, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, - 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x34, 0x0a, 0x18, 0x41, 0x64, - 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x22, 0xe9, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, - 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x06, - 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x37, 0x0a, 0x1b, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x35, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, - 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x37, 0x0a, 0x1b, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x59, 0x0a, 0x15, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, - 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x9a, 0x01, 0x0a, 0x16, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x52, 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcc, 0x02, - 0x0a, 0x08, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x6d, - 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, - 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x93, 0x03, 0x0a, - 0x10, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x6f, 0x6d, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, - 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x05, 0x52, 0x0b, 0x74, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, - 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, - 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, - 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x08, 0x46, - 0x67, 0x61, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x6c, 0x22, 0x52, 0x0a, 0x08, 0x46, 0x67, 0x61, - 0x54, 0x75, 0x70, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x14, 0x0a, - 0x12, 0x46, 0x67, 0x61, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x44, 0x0a, 0x13, 0x46, 0x67, 0x61, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x31, 0x0a, 0x14, 0x46, 0x67, 0x61, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x19, 0x0a, 0x03, 0x64, 0x73, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x64, 0x73, 0x6c, 0x22, 0x46, 0x0a, 0x15, - 0x46, 0x67, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x4d, 0x0a, 0x15, 0x46, 0x67, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, - 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, - 0x61, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, 0x74, 0x75, 0x70, - 0x6c, 0x65, 0x73, 0x22, 0x32, 0x0a, 0x16, 0x46, 0x67, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, - 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4e, 0x0a, 0x16, 0x46, 0x67, 0x61, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x34, 0x0a, 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x46, 0x67, 0x61, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, - 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x17, 0x46, 0x67, 0x61, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x89, 0x02, 0x0a, - 0x14, 0x46, 0x67, 0x61, 0x52, 0x65, 0x61, 0x64, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1f, - 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, - 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x11, 0x63, 0x6f, - 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x93, 0x01, 0x0a, 0x15, 0x46, 0x67, 0x61, - 0x52, 0x65, 0x61, 0x64, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x74, 0x75, 0x70, - 0x6c, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x81, - 0x01, 0x0a, 0x13, 0x46, 0x67, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x09, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x2c, 0x0a, 0x14, 0x46, 0x67, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x22, 0x58, 0x0a, 0x10, 0x46, 0x67, 0x61, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x06, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x27, 0x0a, 0x11, 0x46, 0x67, - 0x61, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x72, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x72, 0x65, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x46, 0x67, 0x61, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2c, 0x0a, 0x10, 0x46, 0x67, 0x61, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x22, 0x9a, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x2f, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x70, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, - 0x08, 0x01, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x63, 0x6f, 0x70, 0x65, - 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x6a, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0xde, 0x01, - 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x25, - 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, - 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x45, - 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x2e, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x30, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x34, 0x0a, 0x19, 0x52, 0x6f, 0x74, 0x61, 0x74, - 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2b, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, - 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x42, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x2d, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x52, - 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x0f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0xf1, 0x03, 0x0a, 0x0d, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, - 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, - 0x72, 0x55, 0x72, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6b, - 0x65, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x6a, 0x77, 0x6b, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6a, 0x77, 0x6b, 0x73, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x75, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, - 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x3d, 0x0a, - 0x1b, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, - 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x18, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x48, 0x69, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x75, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0xae, 0x04, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x35, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, - 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, - 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x2f, 0x0a, - 0x0f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x0d, 0x6b, 0x65, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, - 0x0a, 0x08, 0x6a, 0x77, 0x6b, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x07, 0x6a, 0x77, 0x6b, 0x73, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2a, - 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x65, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x75, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x42, - 0x0a, 0x1b, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x18, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x48, 0x69, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x73, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0f, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x88, - 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6a, 0x77, 0x6b, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x72, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x73, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x5f, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x73, - 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, - 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x0d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, - 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x22, 0x96, 0x03, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6a, 0x77, 0x6b, 0x73, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6a, 0x77, - 0x6b, 0x73, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x75, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x72, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x18, 0x73, 0x70, 0x69, 0x66, 0x66, - 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x48, 0x69, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x05, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x6a, 0x77, 0x6b, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x75, 0x64, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, - 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x68, - 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x22, 0x62, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, - 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x43, 0x0a, 0x0e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x0d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, - 0x73, 0x75, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, - 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x37, 0x0a, 0x1b, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x22, 0x32, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, - 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, - 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x0d, 0x74, 0x72, 0x75, 0x73, - 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x22, 0xa3, 0x01, 0x0a, 0x15, 0x54, 0x72, - 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x22, - 0x9a, 0x01, 0x0a, 0x16, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x74, 0x72, - 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x72, 0x52, 0x0e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, - 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xa8, 0x2a, 0x0a, - 0x16, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x41, 0x64, 0x6d, 0x69, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x71, 0x0a, 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xa0, 0xb5, 0x18, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x6e, 0x0a, 0x0b, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x21, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, - 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x72, 0x0a, 0x0c, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, - 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x66, - 0x0a, 0x09, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1f, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x5e, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, - 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x3a, - 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x75, 0x73, - 0x65, 0x72, 0x12, 0x73, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, - 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x73, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x9b, 0x01, 0x0a, - 0x14, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x2a, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x7b, 0x0a, 0x0c, 0x52, 0x65, - 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x22, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, - 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x7b, 0x0a, 0x0c, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, - 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x12, 0x7f, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, - 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x73, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x57, 0x65, 0x62, 0x68, - 0x6f, 0x6f, 0x6b, 0x12, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, - 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, - 0x64, 0x64, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x7f, 0x0a, 0x0d, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x23, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, - 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x7f, 0x0a, 0x0d, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x23, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, - 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x6f, 0x0a, 0x0a, - 0x47, 0x65, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x20, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, - 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x6a, 0x0a, - 0x08, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, - 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, - 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x77, 0x0a, 0x0b, 0x57, 0x65, 0x62, - 0x68, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, - 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, - 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x5f, 0x6c, 0x6f, - 0x67, 0x73, 0x12, 0x7b, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x8c, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, - 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x64, 0x64, 0x5f, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x98, - 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x29, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, - 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x13, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x12, 0x29, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, - 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, - 0x61, 0x69, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, - 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x6f, 0x0a, 0x09, 0x41, 0x75, - 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, - 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x71, 0x0a, 0x0b, 0x46, - 0x67, 0x61, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x21, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x47, 0x65, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, - 0x61, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x66, 0x67, 0x61, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x7a, - 0x0a, 0x0d, 0x46, 0x67, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, - 0x23, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x67, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2f, 0x66, 0x67, 0x61, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x7e, 0x0a, 0x0e, 0x46, 0x67, - 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x75, 0x70, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, - 0x66, 0x67, 0x61, 0x2f, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x46, - 0x67, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x25, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x67, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, - 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2f, 0x66, 0x67, 0x61, 0x2f, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x46, 0x67, 0x61, 0x52, 0x65, 0x61, - 0x64, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x52, 0x65, 0x61, 0x64, 0x54, - 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, - 0x52, 0x65, 0x61, 0x64, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, - 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x66, 0x67, 0x61, 0x2f, 0x74, 0x75, 0x70, - 0x6c, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x12, 0x7c, 0x0a, 0x0c, 0x46, 0x67, 0x61, 0x4c, - 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x4c, 0x69, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, - 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, - 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x66, 0x67, 0x61, 0x2f, 0x6c, 0x69, 0x73, 0x74, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x6f, 0x0a, 0x09, 0x46, 0x67, 0x61, 0x45, 0x78, 0x70, - 0x61, 0x6e, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, - 0x2a, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x66, 0x67, 0x61, - 0x2f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x12, 0x6b, 0x0a, 0x08, 0x46, 0x67, 0x61, 0x52, 0x65, - 0x73, 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, - 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x66, 0x67, 0x61, 0x2f, 0x72, - 0x65, 0x73, 0x65, 0x74, 0x12, 0x7b, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x7b, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x7b, - 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x22, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, - 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x8e, 0x01, 0x0a, 0x12, - 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x12, 0x28, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x76, - 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x6b, 0x0a, 0x09, - 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x66, 0x0a, 0x07, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, - 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x8c, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, - 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, - 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, - 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x64, - 0x64, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, - 0x12, 0x98, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, - 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, - 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, - 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x72, 0x75, - 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x98, 0x01, 0x0a, 0x13, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, - 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x24, 0x3a, 0x01, 0x2a, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x88, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x72, - 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, - 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, - 0x72, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x73, 0x12, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, - 0x65, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x76, - 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x42, 0xc0, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x77, - 0x69, 0x74, 0x68, 0x2d, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x0d, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} - -var ( - file_authorizer_v1_admin_proto_rawDescOnce sync.Once - file_authorizer_v1_admin_proto_rawDescData = file_authorizer_v1_admin_proto_rawDesc -) - -func file_authorizer_v1_admin_proto_rawDescGZIP() []byte { - file_authorizer_v1_admin_proto_rawDescOnce.Do(func() { - file_authorizer_v1_admin_proto_rawDescData = protoimpl.X.CompressGZIP(file_authorizer_v1_admin_proto_rawDescData) - }) - return file_authorizer_v1_admin_proto_rawDescData -} - -var file_authorizer_v1_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 95) -var file_authorizer_v1_admin_proto_goTypes = []any{ - (*AdminLoginRequest)(nil), // 0: authorizer.v1.AdminLoginRequest - (*AdminLoginResponse)(nil), // 1: authorizer.v1.AdminLoginResponse - (*AdminLogoutRequest)(nil), // 2: authorizer.v1.AdminLogoutRequest - (*AdminLogoutResponse)(nil), // 3: authorizer.v1.AdminLogoutResponse - (*AdminSessionRequest)(nil), // 4: authorizer.v1.AdminSessionRequest - (*AdminSessionResponse)(nil), // 5: authorizer.v1.AdminSessionResponse - (*AdminMetaRequest)(nil), // 6: authorizer.v1.AdminMetaRequest - (*AdminMetaResponse)(nil), // 7: authorizer.v1.AdminMetaResponse - (*AdminMeta)(nil), // 8: authorizer.v1.AdminMeta - (*UsersRequest)(nil), // 9: authorizer.v1.UsersRequest - (*UsersResponse)(nil), // 10: authorizer.v1.UsersResponse - (*UserRequest)(nil), // 11: authorizer.v1.UserRequest - (*UserResponse)(nil), // 12: authorizer.v1.UserResponse - (*UpdateUserRequest)(nil), // 13: authorizer.v1.UpdateUserRequest - (*UpdateUserResponse)(nil), // 14: authorizer.v1.UpdateUserResponse - (*DeleteUserRequest)(nil), // 15: authorizer.v1.DeleteUserRequest - (*DeleteUserResponse)(nil), // 16: authorizer.v1.DeleteUserResponse - (*VerificationRequestsRequest)(nil), // 17: authorizer.v1.VerificationRequestsRequest - (*VerificationRequestsResponse)(nil), // 18: authorizer.v1.VerificationRequestsResponse - (*VerificationRequest)(nil), // 19: authorizer.v1.VerificationRequest - (*RevokeAccessRequest)(nil), // 20: authorizer.v1.RevokeAccessRequest - (*RevokeAccessResponse)(nil), // 21: authorizer.v1.RevokeAccessResponse - (*EnableAccessRequest)(nil), // 22: authorizer.v1.EnableAccessRequest - (*EnableAccessResponse)(nil), // 23: authorizer.v1.EnableAccessResponse - (*InviteMembersRequest)(nil), // 24: authorizer.v1.InviteMembersRequest - (*InviteMembersResponse)(nil), // 25: authorizer.v1.InviteMembersResponse - (*Webhook)(nil), // 26: authorizer.v1.Webhook - (*WebhookLog)(nil), // 27: authorizer.v1.WebhookLog - (*AddWebhookRequest)(nil), // 28: authorizer.v1.AddWebhookRequest - (*AddWebhookResponse)(nil), // 29: authorizer.v1.AddWebhookResponse - (*UpdateWebhookRequest)(nil), // 30: authorizer.v1.UpdateWebhookRequest - (*UpdateWebhookResponse)(nil), // 31: authorizer.v1.UpdateWebhookResponse - (*DeleteWebhookRequest)(nil), // 32: authorizer.v1.DeleteWebhookRequest - (*DeleteWebhookResponse)(nil), // 33: authorizer.v1.DeleteWebhookResponse - (*GetWebhookRequest)(nil), // 34: authorizer.v1.GetWebhookRequest - (*GetWebhookResponse)(nil), // 35: authorizer.v1.GetWebhookResponse - (*WebhooksRequest)(nil), // 36: authorizer.v1.WebhooksRequest - (*WebhooksResponse)(nil), // 37: authorizer.v1.WebhooksResponse - (*WebhookLogsRequest)(nil), // 38: authorizer.v1.WebhookLogsRequest - (*WebhookLogsResponse)(nil), // 39: authorizer.v1.WebhookLogsResponse - (*TestEndpointRequest)(nil), // 40: authorizer.v1.TestEndpointRequest - (*TestEndpointResponse)(nil), // 41: authorizer.v1.TestEndpointResponse - (*EmailTemplate)(nil), // 42: authorizer.v1.EmailTemplate - (*AddEmailTemplateRequest)(nil), // 43: authorizer.v1.AddEmailTemplateRequest - (*AddEmailTemplateResponse)(nil), // 44: authorizer.v1.AddEmailTemplateResponse - (*UpdateEmailTemplateRequest)(nil), // 45: authorizer.v1.UpdateEmailTemplateRequest - (*UpdateEmailTemplateResponse)(nil), // 46: authorizer.v1.UpdateEmailTemplateResponse - (*DeleteEmailTemplateRequest)(nil), // 47: authorizer.v1.DeleteEmailTemplateRequest - (*DeleteEmailTemplateResponse)(nil), // 48: authorizer.v1.DeleteEmailTemplateResponse - (*EmailTemplatesRequest)(nil), // 49: authorizer.v1.EmailTemplatesRequest - (*EmailTemplatesResponse)(nil), // 50: authorizer.v1.EmailTemplatesResponse - (*AuditLog)(nil), // 51: authorizer.v1.AuditLog - (*AuditLogsRequest)(nil), // 52: authorizer.v1.AuditLogsRequest - (*AuditLogsResponse)(nil), // 53: authorizer.v1.AuditLogsResponse - (*FgaModel)(nil), // 54: authorizer.v1.FgaModel - (*FgaTuple)(nil), // 55: authorizer.v1.FgaTuple - (*FgaGetModelRequest)(nil), // 56: authorizer.v1.FgaGetModelRequest - (*FgaGetModelResponse)(nil), // 57: authorizer.v1.FgaGetModelResponse - (*FgaWriteModelRequest)(nil), // 58: authorizer.v1.FgaWriteModelRequest - (*FgaWriteModelResponse)(nil), // 59: authorizer.v1.FgaWriteModelResponse - (*FgaWriteTuplesRequest)(nil), // 60: authorizer.v1.FgaWriteTuplesRequest - (*FgaWriteTuplesResponse)(nil), // 61: authorizer.v1.FgaWriteTuplesResponse - (*FgaDeleteTuplesRequest)(nil), // 62: authorizer.v1.FgaDeleteTuplesRequest - (*FgaDeleteTuplesResponse)(nil), // 63: authorizer.v1.FgaDeleteTuplesResponse - (*FgaReadTuplesRequest)(nil), // 64: authorizer.v1.FgaReadTuplesRequest - (*FgaReadTuplesResponse)(nil), // 65: authorizer.v1.FgaReadTuplesResponse - (*FgaListUsersRequest)(nil), // 66: authorizer.v1.FgaListUsersRequest - (*FgaListUsersResponse)(nil), // 67: authorizer.v1.FgaListUsersResponse - (*FgaExpandRequest)(nil), // 68: authorizer.v1.FgaExpandRequest - (*FgaExpandResponse)(nil), // 69: authorizer.v1.FgaExpandResponse - (*FgaResetRequest)(nil), // 70: authorizer.v1.FgaResetRequest - (*FgaResetResponse)(nil), // 71: authorizer.v1.FgaResetResponse - (*Client)(nil), // 72: authorizer.v1.Client - (*CreateClientRequest)(nil), // 73: authorizer.v1.CreateClientRequest - (*CreateClientResponse)(nil), // 74: authorizer.v1.CreateClientResponse - (*UpdateClientRequest)(nil), // 75: authorizer.v1.UpdateClientRequest - (*UpdateClientResponse)(nil), // 76: authorizer.v1.UpdateClientResponse - (*DeleteClientRequest)(nil), // 77: authorizer.v1.DeleteClientRequest - (*DeleteClientResponse)(nil), // 78: authorizer.v1.DeleteClientResponse - (*RotateClientSecretRequest)(nil), // 79: authorizer.v1.RotateClientSecretRequest - (*GetClientRequest)(nil), // 80: authorizer.v1.GetClientRequest - (*GetClientResponse)(nil), // 81: authorizer.v1.GetClientResponse - (*ClientsRequest)(nil), // 82: authorizer.v1.ClientsRequest - (*ClientsResponse)(nil), // 83: authorizer.v1.ClientsResponse - (*TrustedIssuer)(nil), // 84: authorizer.v1.TrustedIssuer - (*AddTrustedIssuerRequest)(nil), // 85: authorizer.v1.AddTrustedIssuerRequest - (*AddTrustedIssuerResponse)(nil), // 86: authorizer.v1.AddTrustedIssuerResponse - (*UpdateTrustedIssuerRequest)(nil), // 87: authorizer.v1.UpdateTrustedIssuerRequest - (*UpdateTrustedIssuerResponse)(nil), // 88: authorizer.v1.UpdateTrustedIssuerResponse - (*DeleteTrustedIssuerRequest)(nil), // 89: authorizer.v1.DeleteTrustedIssuerRequest - (*DeleteTrustedIssuerResponse)(nil), // 90: authorizer.v1.DeleteTrustedIssuerResponse - (*GetTrustedIssuerRequest)(nil), // 91: authorizer.v1.GetTrustedIssuerRequest - (*GetTrustedIssuerResponse)(nil), // 92: authorizer.v1.GetTrustedIssuerResponse - (*TrustedIssuersRequest)(nil), // 93: authorizer.v1.TrustedIssuersRequest - (*TrustedIssuersResponse)(nil), // 94: authorizer.v1.TrustedIssuersResponse - (*PaginationRequest)(nil), // 95: authorizer.v1.PaginationRequest - (*User)(nil), // 96: authorizer.v1.User - (*Pagination)(nil), // 97: authorizer.v1.Pagination - (*AppData)(nil), // 98: authorizer.v1.AppData - (*FgaTupleInput)(nil), // 99: authorizer.v1.FgaTupleInput -} -var file_authorizer_v1_admin_proto_depIdxs = []int32{ - 8, // 0: authorizer.v1.AdminMetaResponse.admin_meta:type_name -> authorizer.v1.AdminMeta - 95, // 1: authorizer.v1.UsersRequest.pagination:type_name -> authorizer.v1.PaginationRequest - 96, // 2: authorizer.v1.UsersResponse.users:type_name -> authorizer.v1.User - 97, // 3: authorizer.v1.UsersResponse.pagination:type_name -> authorizer.v1.Pagination - 96, // 4: authorizer.v1.UserResponse.user:type_name -> authorizer.v1.User - 98, // 5: authorizer.v1.UpdateUserRequest.app_data:type_name -> authorizer.v1.AppData - 96, // 6: authorizer.v1.UpdateUserResponse.user:type_name -> authorizer.v1.User - 95, // 7: authorizer.v1.VerificationRequestsRequest.pagination:type_name -> authorizer.v1.PaginationRequest - 19, // 8: authorizer.v1.VerificationRequestsResponse.verification_requests:type_name -> authorizer.v1.VerificationRequest - 97, // 9: authorizer.v1.VerificationRequestsResponse.pagination:type_name -> authorizer.v1.Pagination - 96, // 10: authorizer.v1.InviteMembersResponse.users:type_name -> authorizer.v1.User - 98, // 11: authorizer.v1.Webhook.headers:type_name -> authorizer.v1.AppData - 98, // 12: authorizer.v1.AddWebhookRequest.headers:type_name -> authorizer.v1.AppData - 98, // 13: authorizer.v1.UpdateWebhookRequest.headers:type_name -> authorizer.v1.AppData - 26, // 14: authorizer.v1.GetWebhookResponse.webhook:type_name -> authorizer.v1.Webhook - 95, // 15: authorizer.v1.WebhooksRequest.pagination:type_name -> authorizer.v1.PaginationRequest - 26, // 16: authorizer.v1.WebhooksResponse.webhooks:type_name -> authorizer.v1.Webhook - 97, // 17: authorizer.v1.WebhooksResponse.pagination:type_name -> authorizer.v1.Pagination - 95, // 18: authorizer.v1.WebhookLogsRequest.pagination:type_name -> authorizer.v1.PaginationRequest - 27, // 19: authorizer.v1.WebhookLogsResponse.webhook_logs:type_name -> authorizer.v1.WebhookLog - 97, // 20: authorizer.v1.WebhookLogsResponse.pagination:type_name -> authorizer.v1.Pagination - 98, // 21: authorizer.v1.TestEndpointRequest.headers:type_name -> authorizer.v1.AppData - 95, // 22: authorizer.v1.EmailTemplatesRequest.pagination:type_name -> authorizer.v1.PaginationRequest - 42, // 23: authorizer.v1.EmailTemplatesResponse.email_templates:type_name -> authorizer.v1.EmailTemplate - 97, // 24: authorizer.v1.EmailTemplatesResponse.pagination:type_name -> authorizer.v1.Pagination - 95, // 25: authorizer.v1.AuditLogsRequest.pagination:type_name -> authorizer.v1.PaginationRequest - 51, // 26: authorizer.v1.AuditLogsResponse.audit_logs:type_name -> authorizer.v1.AuditLog - 97, // 27: authorizer.v1.AuditLogsResponse.pagination:type_name -> authorizer.v1.Pagination - 54, // 28: authorizer.v1.FgaGetModelResponse.model:type_name -> authorizer.v1.FgaModel - 54, // 29: authorizer.v1.FgaWriteModelResponse.model:type_name -> authorizer.v1.FgaModel - 99, // 30: authorizer.v1.FgaWriteTuplesRequest.tuples:type_name -> authorizer.v1.FgaTupleInput - 99, // 31: authorizer.v1.FgaDeleteTuplesRequest.tuples:type_name -> authorizer.v1.FgaTupleInput - 55, // 32: authorizer.v1.FgaReadTuplesResponse.tuples:type_name -> authorizer.v1.FgaTuple - 72, // 33: authorizer.v1.CreateClientResponse.client:type_name -> authorizer.v1.Client - 72, // 34: authorizer.v1.UpdateClientResponse.client:type_name -> authorizer.v1.Client - 72, // 35: authorizer.v1.GetClientResponse.client:type_name -> authorizer.v1.Client - 95, // 36: authorizer.v1.ClientsRequest.pagination:type_name -> authorizer.v1.PaginationRequest - 72, // 37: authorizer.v1.ClientsResponse.clients:type_name -> authorizer.v1.Client - 97, // 38: authorizer.v1.ClientsResponse.pagination:type_name -> authorizer.v1.Pagination - 84, // 39: authorizer.v1.AddTrustedIssuerResponse.trusted_issuer:type_name -> authorizer.v1.TrustedIssuer - 84, // 40: authorizer.v1.UpdateTrustedIssuerResponse.trusted_issuer:type_name -> authorizer.v1.TrustedIssuer - 84, // 41: authorizer.v1.GetTrustedIssuerResponse.trusted_issuer:type_name -> authorizer.v1.TrustedIssuer - 95, // 42: authorizer.v1.TrustedIssuersRequest.pagination:type_name -> authorizer.v1.PaginationRequest - 84, // 43: authorizer.v1.TrustedIssuersResponse.trusted_issuers:type_name -> authorizer.v1.TrustedIssuer - 97, // 44: authorizer.v1.TrustedIssuersResponse.pagination:type_name -> authorizer.v1.Pagination - 0, // 45: authorizer.v1.AuthorizerAdminService.AdminLogin:input_type -> authorizer.v1.AdminLoginRequest - 2, // 46: authorizer.v1.AuthorizerAdminService.AdminLogout:input_type -> authorizer.v1.AdminLogoutRequest - 4, // 47: authorizer.v1.AuthorizerAdminService.AdminSession:input_type -> authorizer.v1.AdminSessionRequest - 6, // 48: authorizer.v1.AuthorizerAdminService.AdminMeta:input_type -> authorizer.v1.AdminMetaRequest - 9, // 49: authorizer.v1.AuthorizerAdminService.Users:input_type -> authorizer.v1.UsersRequest - 11, // 50: authorizer.v1.AuthorizerAdminService.User:input_type -> authorizer.v1.UserRequest - 13, // 51: authorizer.v1.AuthorizerAdminService.UpdateUser:input_type -> authorizer.v1.UpdateUserRequest - 15, // 52: authorizer.v1.AuthorizerAdminService.DeleteUser:input_type -> authorizer.v1.DeleteUserRequest - 17, // 53: authorizer.v1.AuthorizerAdminService.VerificationRequests:input_type -> authorizer.v1.VerificationRequestsRequest - 20, // 54: authorizer.v1.AuthorizerAdminService.RevokeAccess:input_type -> authorizer.v1.RevokeAccessRequest - 22, // 55: authorizer.v1.AuthorizerAdminService.EnableAccess:input_type -> authorizer.v1.EnableAccessRequest - 24, // 56: authorizer.v1.AuthorizerAdminService.InviteMembers:input_type -> authorizer.v1.InviteMembersRequest - 28, // 57: authorizer.v1.AuthorizerAdminService.AddWebhook:input_type -> authorizer.v1.AddWebhookRequest - 30, // 58: authorizer.v1.AuthorizerAdminService.UpdateWebhook:input_type -> authorizer.v1.UpdateWebhookRequest - 32, // 59: authorizer.v1.AuthorizerAdminService.DeleteWebhook:input_type -> authorizer.v1.DeleteWebhookRequest - 34, // 60: authorizer.v1.AuthorizerAdminService.GetWebhook:input_type -> authorizer.v1.GetWebhookRequest - 36, // 61: authorizer.v1.AuthorizerAdminService.Webhooks:input_type -> authorizer.v1.WebhooksRequest - 38, // 62: authorizer.v1.AuthorizerAdminService.WebhookLogs:input_type -> authorizer.v1.WebhookLogsRequest - 40, // 63: authorizer.v1.AuthorizerAdminService.TestEndpoint:input_type -> authorizer.v1.TestEndpointRequest - 43, // 64: authorizer.v1.AuthorizerAdminService.AddEmailTemplate:input_type -> authorizer.v1.AddEmailTemplateRequest - 45, // 65: authorizer.v1.AuthorizerAdminService.UpdateEmailTemplate:input_type -> authorizer.v1.UpdateEmailTemplateRequest - 47, // 66: authorizer.v1.AuthorizerAdminService.DeleteEmailTemplate:input_type -> authorizer.v1.DeleteEmailTemplateRequest - 49, // 67: authorizer.v1.AuthorizerAdminService.EmailTemplates:input_type -> authorizer.v1.EmailTemplatesRequest - 52, // 68: authorizer.v1.AuthorizerAdminService.AuditLogs:input_type -> authorizer.v1.AuditLogsRequest - 56, // 69: authorizer.v1.AuthorizerAdminService.FgaGetModel:input_type -> authorizer.v1.FgaGetModelRequest - 58, // 70: authorizer.v1.AuthorizerAdminService.FgaWriteModel:input_type -> authorizer.v1.FgaWriteModelRequest - 60, // 71: authorizer.v1.AuthorizerAdminService.FgaWriteTuples:input_type -> authorizer.v1.FgaWriteTuplesRequest - 62, // 72: authorizer.v1.AuthorizerAdminService.FgaDeleteTuples:input_type -> authorizer.v1.FgaDeleteTuplesRequest - 64, // 73: authorizer.v1.AuthorizerAdminService.FgaReadTuples:input_type -> authorizer.v1.FgaReadTuplesRequest - 66, // 74: authorizer.v1.AuthorizerAdminService.FgaListUsers:input_type -> authorizer.v1.FgaListUsersRequest - 68, // 75: authorizer.v1.AuthorizerAdminService.FgaExpand:input_type -> authorizer.v1.FgaExpandRequest - 70, // 76: authorizer.v1.AuthorizerAdminService.FgaReset:input_type -> authorizer.v1.FgaResetRequest - 73, // 77: authorizer.v1.AuthorizerAdminService.CreateClient:input_type -> authorizer.v1.CreateClientRequest - 75, // 78: authorizer.v1.AuthorizerAdminService.UpdateClient:input_type -> authorizer.v1.UpdateClientRequest - 77, // 79: authorizer.v1.AuthorizerAdminService.DeleteClient:input_type -> authorizer.v1.DeleteClientRequest - 79, // 80: authorizer.v1.AuthorizerAdminService.RotateClientSecret:input_type -> authorizer.v1.RotateClientSecretRequest - 80, // 81: authorizer.v1.AuthorizerAdminService.GetClient:input_type -> authorizer.v1.GetClientRequest - 82, // 82: authorizer.v1.AuthorizerAdminService.Clients:input_type -> authorizer.v1.ClientsRequest - 85, // 83: authorizer.v1.AuthorizerAdminService.AddTrustedIssuer:input_type -> authorizer.v1.AddTrustedIssuerRequest - 87, // 84: authorizer.v1.AuthorizerAdminService.UpdateTrustedIssuer:input_type -> authorizer.v1.UpdateTrustedIssuerRequest - 89, // 85: authorizer.v1.AuthorizerAdminService.DeleteTrustedIssuer:input_type -> authorizer.v1.DeleteTrustedIssuerRequest - 91, // 86: authorizer.v1.AuthorizerAdminService.GetTrustedIssuer:input_type -> authorizer.v1.GetTrustedIssuerRequest - 93, // 87: authorizer.v1.AuthorizerAdminService.TrustedIssuers:input_type -> authorizer.v1.TrustedIssuersRequest - 1, // 88: authorizer.v1.AuthorizerAdminService.AdminLogin:output_type -> authorizer.v1.AdminLoginResponse - 3, // 89: authorizer.v1.AuthorizerAdminService.AdminLogout:output_type -> authorizer.v1.AdminLogoutResponse - 5, // 90: authorizer.v1.AuthorizerAdminService.AdminSession:output_type -> authorizer.v1.AdminSessionResponse - 7, // 91: authorizer.v1.AuthorizerAdminService.AdminMeta:output_type -> authorizer.v1.AdminMetaResponse - 10, // 92: authorizer.v1.AuthorizerAdminService.Users:output_type -> authorizer.v1.UsersResponse - 12, // 93: authorizer.v1.AuthorizerAdminService.User:output_type -> authorizer.v1.UserResponse - 14, // 94: authorizer.v1.AuthorizerAdminService.UpdateUser:output_type -> authorizer.v1.UpdateUserResponse - 16, // 95: authorizer.v1.AuthorizerAdminService.DeleteUser:output_type -> authorizer.v1.DeleteUserResponse - 18, // 96: authorizer.v1.AuthorizerAdminService.VerificationRequests:output_type -> authorizer.v1.VerificationRequestsResponse - 21, // 97: authorizer.v1.AuthorizerAdminService.RevokeAccess:output_type -> authorizer.v1.RevokeAccessResponse - 23, // 98: authorizer.v1.AuthorizerAdminService.EnableAccess:output_type -> authorizer.v1.EnableAccessResponse - 25, // 99: authorizer.v1.AuthorizerAdminService.InviteMembers:output_type -> authorizer.v1.InviteMembersResponse - 29, // 100: authorizer.v1.AuthorizerAdminService.AddWebhook:output_type -> authorizer.v1.AddWebhookResponse - 31, // 101: authorizer.v1.AuthorizerAdminService.UpdateWebhook:output_type -> authorizer.v1.UpdateWebhookResponse - 33, // 102: authorizer.v1.AuthorizerAdminService.DeleteWebhook:output_type -> authorizer.v1.DeleteWebhookResponse - 35, // 103: authorizer.v1.AuthorizerAdminService.GetWebhook:output_type -> authorizer.v1.GetWebhookResponse - 37, // 104: authorizer.v1.AuthorizerAdminService.Webhooks:output_type -> authorizer.v1.WebhooksResponse - 39, // 105: authorizer.v1.AuthorizerAdminService.WebhookLogs:output_type -> authorizer.v1.WebhookLogsResponse - 41, // 106: authorizer.v1.AuthorizerAdminService.TestEndpoint:output_type -> authorizer.v1.TestEndpointResponse - 44, // 107: authorizer.v1.AuthorizerAdminService.AddEmailTemplate:output_type -> authorizer.v1.AddEmailTemplateResponse - 46, // 108: authorizer.v1.AuthorizerAdminService.UpdateEmailTemplate:output_type -> authorizer.v1.UpdateEmailTemplateResponse - 48, // 109: authorizer.v1.AuthorizerAdminService.DeleteEmailTemplate:output_type -> authorizer.v1.DeleteEmailTemplateResponse - 50, // 110: authorizer.v1.AuthorizerAdminService.EmailTemplates:output_type -> authorizer.v1.EmailTemplatesResponse - 53, // 111: authorizer.v1.AuthorizerAdminService.AuditLogs:output_type -> authorizer.v1.AuditLogsResponse - 57, // 112: authorizer.v1.AuthorizerAdminService.FgaGetModel:output_type -> authorizer.v1.FgaGetModelResponse - 59, // 113: authorizer.v1.AuthorizerAdminService.FgaWriteModel:output_type -> authorizer.v1.FgaWriteModelResponse - 61, // 114: authorizer.v1.AuthorizerAdminService.FgaWriteTuples:output_type -> authorizer.v1.FgaWriteTuplesResponse - 63, // 115: authorizer.v1.AuthorizerAdminService.FgaDeleteTuples:output_type -> authorizer.v1.FgaDeleteTuplesResponse - 65, // 116: authorizer.v1.AuthorizerAdminService.FgaReadTuples:output_type -> authorizer.v1.FgaReadTuplesResponse - 67, // 117: authorizer.v1.AuthorizerAdminService.FgaListUsers:output_type -> authorizer.v1.FgaListUsersResponse - 69, // 118: authorizer.v1.AuthorizerAdminService.FgaExpand:output_type -> authorizer.v1.FgaExpandResponse - 71, // 119: authorizer.v1.AuthorizerAdminService.FgaReset:output_type -> authorizer.v1.FgaResetResponse - 74, // 120: authorizer.v1.AuthorizerAdminService.CreateClient:output_type -> authorizer.v1.CreateClientResponse - 76, // 121: authorizer.v1.AuthorizerAdminService.UpdateClient:output_type -> authorizer.v1.UpdateClientResponse - 78, // 122: authorizer.v1.AuthorizerAdminService.DeleteClient:output_type -> authorizer.v1.DeleteClientResponse - 74, // 123: authorizer.v1.AuthorizerAdminService.RotateClientSecret:output_type -> authorizer.v1.CreateClientResponse - 81, // 124: authorizer.v1.AuthorizerAdminService.GetClient:output_type -> authorizer.v1.GetClientResponse - 83, // 125: authorizer.v1.AuthorizerAdminService.Clients:output_type -> authorizer.v1.ClientsResponse - 86, // 126: authorizer.v1.AuthorizerAdminService.AddTrustedIssuer:output_type -> authorizer.v1.AddTrustedIssuerResponse - 88, // 127: authorizer.v1.AuthorizerAdminService.UpdateTrustedIssuer:output_type -> authorizer.v1.UpdateTrustedIssuerResponse - 90, // 128: authorizer.v1.AuthorizerAdminService.DeleteTrustedIssuer:output_type -> authorizer.v1.DeleteTrustedIssuerResponse - 92, // 129: authorizer.v1.AuthorizerAdminService.GetTrustedIssuer:output_type -> authorizer.v1.GetTrustedIssuerResponse - 94, // 130: authorizer.v1.AuthorizerAdminService.TrustedIssuers:output_type -> authorizer.v1.TrustedIssuersResponse - 88, // [88:131] is the sub-list for method output_type - 45, // [45:88] is the sub-list for method input_type - 45, // [45:45] is the sub-list for extension type_name - 45, // [45:45] is the sub-list for extension extendee - 0, // [0:45] is the sub-list for field type_name -} - -func init() { file_authorizer_v1_admin_proto_init() } -func file_authorizer_v1_admin_proto_init() { - if File_authorizer_v1_admin_proto != nil { - return - } - file_authorizer_v1_annotations_proto_init() - file_authorizer_v1_common_proto_init() - file_authorizer_v1_pagination_proto_init() - file_authorizer_v1_types_proto_init() - file_authorizer_v1_admin_proto_msgTypes[13].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[24].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[28].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[30].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[38].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[40].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[43].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[45].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[52].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[64].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[65].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[73].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[75].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[85].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[87].OneofWrappers = []any{} - file_authorizer_v1_admin_proto_msgTypes[93].OneofWrappers = []any{} - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_authorizer_v1_admin_proto_rawDesc, - NumEnums: 0, - NumMessages: 95, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_authorizer_v1_admin_proto_goTypes, - DependencyIndexes: file_authorizer_v1_admin_proto_depIdxs, - MessageInfos: file_authorizer_v1_admin_proto_msgTypes, - }.Build() - File_authorizer_v1_admin_proto = out.File - file_authorizer_v1_admin_proto_rawDesc = nil - file_authorizer_v1_admin_proto_goTypes = nil - file_authorizer_v1_admin_proto_depIdxs = nil -} diff --git a/with-grpc/gen/authorizer/v1/admin_grpc.pb.go b/with-grpc/gen/authorizer/v1/admin_grpc.pb.go deleted file mode 100644 index a657b6b..0000000 --- a/with-grpc/gen/authorizer/v1/admin_grpc.pb.go +++ /dev/null @@ -1,1910 +0,0 @@ -// proto/authorizer/v1/admin.proto -// -// AuthorizerAdminService exposes Authorizer's super-admin-only operations -// (the `_`-prefixed GraphQL queries/mutations). It is registered on the SAME -// grpc.Server and gateway mux as AuthorizerService. Every RPC requires -// super-admin auth (admin session cookie or x-authorizer-admin-secret header) -// except AdminLogin, which establishes it. Admin operations are intentionally -// NOT exposed over MCP. - -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc (unknown) -// source: authorizer/v1/admin.proto - -package authorizerv1 - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 - -const ( - AuthorizerAdminService_AdminLogin_FullMethodName = "/authorizer.v1.AuthorizerAdminService/AdminLogin" - AuthorizerAdminService_AdminLogout_FullMethodName = "/authorizer.v1.AuthorizerAdminService/AdminLogout" - AuthorizerAdminService_AdminSession_FullMethodName = "/authorizer.v1.AuthorizerAdminService/AdminSession" - AuthorizerAdminService_AdminMeta_FullMethodName = "/authorizer.v1.AuthorizerAdminService/AdminMeta" - AuthorizerAdminService_Users_FullMethodName = "/authorizer.v1.AuthorizerAdminService/Users" - AuthorizerAdminService_User_FullMethodName = "/authorizer.v1.AuthorizerAdminService/User" - AuthorizerAdminService_UpdateUser_FullMethodName = "/authorizer.v1.AuthorizerAdminService/UpdateUser" - AuthorizerAdminService_DeleteUser_FullMethodName = "/authorizer.v1.AuthorizerAdminService/DeleteUser" - AuthorizerAdminService_VerificationRequests_FullMethodName = "/authorizer.v1.AuthorizerAdminService/VerificationRequests" - AuthorizerAdminService_RevokeAccess_FullMethodName = "/authorizer.v1.AuthorizerAdminService/RevokeAccess" - AuthorizerAdminService_EnableAccess_FullMethodName = "/authorizer.v1.AuthorizerAdminService/EnableAccess" - AuthorizerAdminService_InviteMembers_FullMethodName = "/authorizer.v1.AuthorizerAdminService/InviteMembers" - AuthorizerAdminService_AddWebhook_FullMethodName = "/authorizer.v1.AuthorizerAdminService/AddWebhook" - AuthorizerAdminService_UpdateWebhook_FullMethodName = "/authorizer.v1.AuthorizerAdminService/UpdateWebhook" - AuthorizerAdminService_DeleteWebhook_FullMethodName = "/authorizer.v1.AuthorizerAdminService/DeleteWebhook" - AuthorizerAdminService_GetWebhook_FullMethodName = "/authorizer.v1.AuthorizerAdminService/GetWebhook" - AuthorizerAdminService_Webhooks_FullMethodName = "/authorizer.v1.AuthorizerAdminService/Webhooks" - AuthorizerAdminService_WebhookLogs_FullMethodName = "/authorizer.v1.AuthorizerAdminService/WebhookLogs" - AuthorizerAdminService_TestEndpoint_FullMethodName = "/authorizer.v1.AuthorizerAdminService/TestEndpoint" - AuthorizerAdminService_AddEmailTemplate_FullMethodName = "/authorizer.v1.AuthorizerAdminService/AddEmailTemplate" - AuthorizerAdminService_UpdateEmailTemplate_FullMethodName = "/authorizer.v1.AuthorizerAdminService/UpdateEmailTemplate" - AuthorizerAdminService_DeleteEmailTemplate_FullMethodName = "/authorizer.v1.AuthorizerAdminService/DeleteEmailTemplate" - AuthorizerAdminService_EmailTemplates_FullMethodName = "/authorizer.v1.AuthorizerAdminService/EmailTemplates" - AuthorizerAdminService_AuditLogs_FullMethodName = "/authorizer.v1.AuthorizerAdminService/AuditLogs" - AuthorizerAdminService_FgaGetModel_FullMethodName = "/authorizer.v1.AuthorizerAdminService/FgaGetModel" - AuthorizerAdminService_FgaWriteModel_FullMethodName = "/authorizer.v1.AuthorizerAdminService/FgaWriteModel" - AuthorizerAdminService_FgaWriteTuples_FullMethodName = "/authorizer.v1.AuthorizerAdminService/FgaWriteTuples" - AuthorizerAdminService_FgaDeleteTuples_FullMethodName = "/authorizer.v1.AuthorizerAdminService/FgaDeleteTuples" - AuthorizerAdminService_FgaReadTuples_FullMethodName = "/authorizer.v1.AuthorizerAdminService/FgaReadTuples" - AuthorizerAdminService_FgaListUsers_FullMethodName = "/authorizer.v1.AuthorizerAdminService/FgaListUsers" - AuthorizerAdminService_FgaExpand_FullMethodName = "/authorizer.v1.AuthorizerAdminService/FgaExpand" - AuthorizerAdminService_FgaReset_FullMethodName = "/authorizer.v1.AuthorizerAdminService/FgaReset" - AuthorizerAdminService_CreateClient_FullMethodName = "/authorizer.v1.AuthorizerAdminService/CreateClient" - AuthorizerAdminService_UpdateClient_FullMethodName = "/authorizer.v1.AuthorizerAdminService/UpdateClient" - AuthorizerAdminService_DeleteClient_FullMethodName = "/authorizer.v1.AuthorizerAdminService/DeleteClient" - AuthorizerAdminService_RotateClientSecret_FullMethodName = "/authorizer.v1.AuthorizerAdminService/RotateClientSecret" - AuthorizerAdminService_GetClient_FullMethodName = "/authorizer.v1.AuthorizerAdminService/GetClient" - AuthorizerAdminService_Clients_FullMethodName = "/authorizer.v1.AuthorizerAdminService/Clients" - AuthorizerAdminService_AddTrustedIssuer_FullMethodName = "/authorizer.v1.AuthorizerAdminService/AddTrustedIssuer" - AuthorizerAdminService_UpdateTrustedIssuer_FullMethodName = "/authorizer.v1.AuthorizerAdminService/UpdateTrustedIssuer" - AuthorizerAdminService_DeleteTrustedIssuer_FullMethodName = "/authorizer.v1.AuthorizerAdminService/DeleteTrustedIssuer" - AuthorizerAdminService_GetTrustedIssuer_FullMethodName = "/authorizer.v1.AuthorizerAdminService/GetTrustedIssuer" - AuthorizerAdminService_TrustedIssuers_FullMethodName = "/authorizer.v1.AuthorizerAdminService/TrustedIssuers" -) - -// AuthorizerAdminServiceClient is the client API for AuthorizerAdminService 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. -// -// AuthorizerAdminService is the single gRPC service for Authorizer's admin -// (super-admin-only) API surface. RPCs are added one domain group at a time; -// see specs/2026-06-15-authorizer-admin-service-plan.md. -type AuthorizerAdminServiceClient interface { - // AdminLogin validates the admin secret and establishes an admin session - // (Set-Cookie for browser callers). Public entry point — the ONLY admin RPC - // that does not require an existing super-admin session. - AdminLogin(ctx context.Context, in *AdminLoginRequest, opts ...grpc.CallOption) (*AdminLoginResponse, error) - // AdminLogout clears the admin session cookie. Requires super-admin auth. - AdminLogout(ctx context.Context, in *AdminLogoutRequest, opts ...grpc.CallOption) (*AdminLogoutResponse, error) - // AdminSession refreshes the admin session cookie. Requires super-admin auth. - AdminSession(ctx context.Context, in *AdminSessionRequest, opts ...grpc.CallOption) (*AdminSessionResponse, error) - // AdminMeta returns admin-only configuration metadata (configured roles, - // default roles, protected roles). Requires super-admin auth. - AdminMeta(ctx context.Context, in *AdminMetaRequest, opts ...grpc.CallOption) (*AdminMetaResponse, error) - // Users returns a paginated list of all users. Requires super-admin auth. - Users(ctx context.Context, in *UsersRequest, opts ...grpc.CallOption) (*UsersResponse, error) - // User returns a single user by id or email. Requires super-admin auth. - User(ctx context.Context, in *UserRequest, opts ...grpc.CallOption) (*UserResponse, error) - // UpdateUser updates a user's profile, roles, MFA, or verification state and - // returns the updated user. Requires super-admin auth. - UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*UpdateUserResponse, error) - // DeleteUser deletes a user (and associated OTP/verification data) by email. - // Requires super-admin auth. - DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*DeleteUserResponse, error) - // VerificationRequests returns a paginated list of pending verification - // requests. Requires super-admin auth. - VerificationRequests(ctx context.Context, in *VerificationRequestsRequest, opts ...grpc.CallOption) (*VerificationRequestsResponse, error) - // RevokeAccess revokes a user's access (sets the revoked timestamp), kills - // their sessions, and fires the access-revoked webhook. Requires super-admin - // auth. - RevokeAccess(ctx context.Context, in *RevokeAccessRequest, opts ...grpc.CallOption) (*RevokeAccessResponse, error) - // EnableAccess re-enables a previously revoked user (clears the revoked - // timestamp) and fires the access-enabled webhook. Requires super-admin auth. - EnableAccess(ctx context.Context, in *EnableAccessRequest, opts ...grpc.CallOption) (*EnableAccessResponse, error) - // InviteMembers creates accounts for new emails and sends invite emails. - // Requires super-admin auth and a configured email service. - InviteMembers(ctx context.Context, in *InviteMembersRequest, opts ...grpc.CallOption) (*InviteMembersResponse, error) - // AddWebhook registers a new webhook for an event. Requires super-admin auth. - AddWebhook(ctx context.Context, in *AddWebhookRequest, opts ...grpc.CallOption) (*AddWebhookResponse, error) - // UpdateWebhook updates an existing webhook's event, endpoint, headers, or - // enabled state. Requires super-admin auth. - UpdateWebhook(ctx context.Context, in *UpdateWebhookRequest, opts ...grpc.CallOption) (*UpdateWebhookResponse, error) - // DeleteWebhook deletes a webhook by id. Requires super-admin auth. - DeleteWebhook(ctx context.Context, in *DeleteWebhookRequest, opts ...grpc.CallOption) (*DeleteWebhookResponse, error) - // GetWebhook returns a single webhook by id. Requires super-admin auth. - GetWebhook(ctx context.Context, in *GetWebhookRequest, opts ...grpc.CallOption) (*GetWebhookResponse, error) - // Webhooks returns a paginated list of webhooks. Requires super-admin auth. - Webhooks(ctx context.Context, in *WebhooksRequest, opts ...grpc.CallOption) (*WebhooksResponse, error) - // WebhookLogs returns a paginated list of webhook delivery logs, optionally - // filtered by webhook id. Requires super-admin auth. - WebhookLogs(ctx context.Context, in *WebhookLogsRequest, opts ...grpc.CallOption) (*WebhookLogsResponse, error) - // TestEndpoint sends a synthetic event payload to a webhook endpoint and - // returns the HTTP status and response body. Requires super-admin auth. - TestEndpoint(ctx context.Context, in *TestEndpointRequest, opts ...grpc.CallOption) (*TestEndpointResponse, error) - // AddEmailTemplate creates a new email template for an event. Requires - // super-admin auth. - AddEmailTemplate(ctx context.Context, in *AddEmailTemplateRequest, opts ...grpc.CallOption) (*AddEmailTemplateResponse, error) - // UpdateEmailTemplate updates an existing email template's event, subject, - // body, or design. Requires super-admin auth. - UpdateEmailTemplate(ctx context.Context, in *UpdateEmailTemplateRequest, opts ...grpc.CallOption) (*UpdateEmailTemplateResponse, error) - // DeleteEmailTemplate deletes an email template by id. Requires super-admin - // auth. - DeleteEmailTemplate(ctx context.Context, in *DeleteEmailTemplateRequest, opts ...grpc.CallOption) (*DeleteEmailTemplateResponse, error) - // EmailTemplates returns a paginated list of email templates. Requires - // super-admin auth. - EmailTemplates(ctx context.Context, in *EmailTemplatesRequest, opts ...grpc.CallOption) (*EmailTemplatesResponse, error) - // AuditLogs returns a paginated, optionally-filtered list of audit log - // entries. Requires super-admin auth. - AuditLogs(ctx context.Context, in *AuditLogsRequest, opts ...grpc.CallOption) (*AuditLogsResponse, error) - // FgaGetModel returns the active fine-grained authorization model as DSL. A - // store with no model yet returns an empty model (not an error). Requires - // super-admin auth. - FgaGetModel(ctx context.Context, in *FgaGetModelRequest, opts ...grpc.CallOption) (*FgaGetModelResponse, error) - // FgaWriteModel installs a new fine-grained authorization model from its DSL - // and returns the new model id. Requires super-admin auth. Audited. - FgaWriteModel(ctx context.Context, in *FgaWriteModelRequest, opts ...grpc.CallOption) (*FgaWriteModelResponse, error) - // FgaWriteTuples persists the given relationship tuples (additive). Requires - // super-admin auth. Audited. - FgaWriteTuples(ctx context.Context, in *FgaWriteTuplesRequest, opts ...grpc.CallOption) (*FgaWriteTuplesResponse, error) - // FgaDeleteTuples removes the given relationship tuples. Requires super-admin - // auth. Audited. - FgaDeleteTuples(ctx context.Context, in *FgaDeleteTuplesRequest, opts ...grpc.CallOption) (*FgaDeleteTuplesResponse, error) - // FgaReadTuples returns a page of persisted tuples matching the filter. - // Requires super-admin auth. - FgaReadTuples(ctx context.Context, in *FgaReadTuplesRequest, opts ...grpc.CallOption) (*FgaReadTuplesResponse, error) - // FgaListUsers returns the fully-qualified user ids of user_type that have - // relation on object ("who can access this object?"). Requires super-admin - // auth. - FgaListUsers(ctx context.Context, in *FgaListUsersRequest, opts ...grpc.CallOption) (*FgaListUsersResponse, error) - // FgaExpand returns the OpenFGA relationship/userset tree for (relation, - // object) as a JSON string (the explainability primitive). Requires - // super-admin auth. - FgaExpand(ctx context.Context, in *FgaExpandRequest, opts ...grpc.CallOption) (*FgaExpandResponse, error) - // FgaReset deletes the entire fine-grained authorization store (the model, - // all its versions, and all tuples) and starts a fresh, empty store. Refused - // while any tuples still exist. Requires super-admin auth. Destructive and - // audited. - FgaReset(ctx context.Context, in *FgaResetRequest, opts ...grpc.CallOption) (*FgaResetResponse, error) - // CreateClient provisions a new machine/workload identity and returns - // the generated client secret exactly once (only the bcrypt hash is stored). - // Requires super-admin auth. - CreateClient(ctx context.Context, in *CreateClientRequest, opts ...grpc.CallOption) (*CreateClientResponse, error) - // UpdateClient updates a service account's name, description, allowed - // scopes, or active state. It never touches the client secret. Requires - // super-admin auth. - UpdateClient(ctx context.Context, in *UpdateClientRequest, opts ...grpc.CallOption) (*UpdateClientResponse, error) - // DeleteClient deletes a service account by id, cascading to its - // trusted issuers. Requires super-admin auth. - DeleteClient(ctx context.Context, in *DeleteClientRequest, opts ...grpc.CallOption) (*DeleteClientResponse, error) - // RotateClientSecret replaces the stored client secret with a fresh - // one and returns the new plaintext exactly once (the old secret stops - // validating immediately). Reuses CreateClientResponse — the only - // admin message that carries a secret. Requires super-admin auth. - RotateClientSecret(ctx context.Context, in *RotateClientSecretRequest, opts ...grpc.CallOption) (*CreateClientResponse, error) - // GetClient returns a single service account by id. The client secret - // is never surfaced. Requires super-admin auth. - GetClient(ctx context.Context, in *GetClientRequest, opts ...grpc.CallOption) (*GetClientResponse, error) - // Clients returns a paginated list of service accounts. Client secrets - // are never surfaced. Requires super-admin auth. - Clients(ctx context.Context, in *ClientsRequest, opts ...grpc.CallOption) (*ClientsResponse, error) - // AddTrustedIssuer registers an external JWT issuer for a service account. - // subject_claim defaults to "sub" when omitted. Requires super-admin auth. - AddTrustedIssuer(ctx context.Context, in *AddTrustedIssuerRequest, opts ...grpc.CallOption) (*AddTrustedIssuerResponse, error) - // UpdateTrustedIssuer updates a trusted issuer's name, JWKS URL, expected - // audience, active state, or SPIFFE refresh hint. Requires super-admin auth. - UpdateTrustedIssuer(ctx context.Context, in *UpdateTrustedIssuerRequest, opts ...grpc.CallOption) (*UpdateTrustedIssuerResponse, error) - // DeleteTrustedIssuer deletes a trusted issuer by id. Requires super-admin - // auth. - DeleteTrustedIssuer(ctx context.Context, in *DeleteTrustedIssuerRequest, opts ...grpc.CallOption) (*DeleteTrustedIssuerResponse, error) - // GetTrustedIssuer returns a single trusted issuer by id. Requires super-admin - // auth. - GetTrustedIssuer(ctx context.Context, in *GetTrustedIssuerRequest, opts ...grpc.CallOption) (*GetTrustedIssuerResponse, error) - // TrustedIssuers returns a paginated list of trusted issuers, optionally - // filtered by service_account_id. Requires super-admin auth. - TrustedIssuers(ctx context.Context, in *TrustedIssuersRequest, opts ...grpc.CallOption) (*TrustedIssuersResponse, error) -} - -type authorizerAdminServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewAuthorizerAdminServiceClient(cc grpc.ClientConnInterface) AuthorizerAdminServiceClient { - return &authorizerAdminServiceClient{cc} -} - -func (c *authorizerAdminServiceClient) AdminLogin(ctx context.Context, in *AdminLoginRequest, opts ...grpc.CallOption) (*AdminLoginResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AdminLoginResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_AdminLogin_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) AdminLogout(ctx context.Context, in *AdminLogoutRequest, opts ...grpc.CallOption) (*AdminLogoutResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AdminLogoutResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_AdminLogout_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) AdminSession(ctx context.Context, in *AdminSessionRequest, opts ...grpc.CallOption) (*AdminSessionResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AdminSessionResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_AdminSession_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) AdminMeta(ctx context.Context, in *AdminMetaRequest, opts ...grpc.CallOption) (*AdminMetaResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AdminMetaResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_AdminMeta_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) Users(ctx context.Context, in *UsersRequest, opts ...grpc.CallOption) (*UsersResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UsersResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_Users_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) User(ctx context.Context, in *UserRequest, opts ...grpc.CallOption) (*UserResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UserResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_User_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*UpdateUserResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UpdateUserResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_UpdateUser_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*DeleteUserResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(DeleteUserResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_DeleteUser_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) VerificationRequests(ctx context.Context, in *VerificationRequestsRequest, opts ...grpc.CallOption) (*VerificationRequestsResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(VerificationRequestsResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_VerificationRequests_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) RevokeAccess(ctx context.Context, in *RevokeAccessRequest, opts ...grpc.CallOption) (*RevokeAccessResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(RevokeAccessResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_RevokeAccess_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) EnableAccess(ctx context.Context, in *EnableAccessRequest, opts ...grpc.CallOption) (*EnableAccessResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(EnableAccessResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_EnableAccess_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) InviteMembers(ctx context.Context, in *InviteMembersRequest, opts ...grpc.CallOption) (*InviteMembersResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(InviteMembersResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_InviteMembers_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) AddWebhook(ctx context.Context, in *AddWebhookRequest, opts ...grpc.CallOption) (*AddWebhookResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AddWebhookResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_AddWebhook_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) UpdateWebhook(ctx context.Context, in *UpdateWebhookRequest, opts ...grpc.CallOption) (*UpdateWebhookResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UpdateWebhookResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_UpdateWebhook_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) DeleteWebhook(ctx context.Context, in *DeleteWebhookRequest, opts ...grpc.CallOption) (*DeleteWebhookResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(DeleteWebhookResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_DeleteWebhook_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) GetWebhook(ctx context.Context, in *GetWebhookRequest, opts ...grpc.CallOption) (*GetWebhookResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(GetWebhookResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_GetWebhook_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) Webhooks(ctx context.Context, in *WebhooksRequest, opts ...grpc.CallOption) (*WebhooksResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(WebhooksResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_Webhooks_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) WebhookLogs(ctx context.Context, in *WebhookLogsRequest, opts ...grpc.CallOption) (*WebhookLogsResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(WebhookLogsResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_WebhookLogs_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) TestEndpoint(ctx context.Context, in *TestEndpointRequest, opts ...grpc.CallOption) (*TestEndpointResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(TestEndpointResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_TestEndpoint_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) AddEmailTemplate(ctx context.Context, in *AddEmailTemplateRequest, opts ...grpc.CallOption) (*AddEmailTemplateResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AddEmailTemplateResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_AddEmailTemplate_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) UpdateEmailTemplate(ctx context.Context, in *UpdateEmailTemplateRequest, opts ...grpc.CallOption) (*UpdateEmailTemplateResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UpdateEmailTemplateResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_UpdateEmailTemplate_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) DeleteEmailTemplate(ctx context.Context, in *DeleteEmailTemplateRequest, opts ...grpc.CallOption) (*DeleteEmailTemplateResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(DeleteEmailTemplateResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_DeleteEmailTemplate_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) EmailTemplates(ctx context.Context, in *EmailTemplatesRequest, opts ...grpc.CallOption) (*EmailTemplatesResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(EmailTemplatesResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_EmailTemplates_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) AuditLogs(ctx context.Context, in *AuditLogsRequest, opts ...grpc.CallOption) (*AuditLogsResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AuditLogsResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_AuditLogs_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) FgaGetModel(ctx context.Context, in *FgaGetModelRequest, opts ...grpc.CallOption) (*FgaGetModelResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(FgaGetModelResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_FgaGetModel_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) FgaWriteModel(ctx context.Context, in *FgaWriteModelRequest, opts ...grpc.CallOption) (*FgaWriteModelResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(FgaWriteModelResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_FgaWriteModel_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) FgaWriteTuples(ctx context.Context, in *FgaWriteTuplesRequest, opts ...grpc.CallOption) (*FgaWriteTuplesResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(FgaWriteTuplesResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_FgaWriteTuples_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) FgaDeleteTuples(ctx context.Context, in *FgaDeleteTuplesRequest, opts ...grpc.CallOption) (*FgaDeleteTuplesResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(FgaDeleteTuplesResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_FgaDeleteTuples_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) FgaReadTuples(ctx context.Context, in *FgaReadTuplesRequest, opts ...grpc.CallOption) (*FgaReadTuplesResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(FgaReadTuplesResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_FgaReadTuples_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) FgaListUsers(ctx context.Context, in *FgaListUsersRequest, opts ...grpc.CallOption) (*FgaListUsersResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(FgaListUsersResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_FgaListUsers_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) FgaExpand(ctx context.Context, in *FgaExpandRequest, opts ...grpc.CallOption) (*FgaExpandResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(FgaExpandResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_FgaExpand_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) FgaReset(ctx context.Context, in *FgaResetRequest, opts ...grpc.CallOption) (*FgaResetResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(FgaResetResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_FgaReset_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) CreateClient(ctx context.Context, in *CreateClientRequest, opts ...grpc.CallOption) (*CreateClientResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(CreateClientResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_CreateClient_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) UpdateClient(ctx context.Context, in *UpdateClientRequest, opts ...grpc.CallOption) (*UpdateClientResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UpdateClientResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_UpdateClient_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) DeleteClient(ctx context.Context, in *DeleteClientRequest, opts ...grpc.CallOption) (*DeleteClientResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(DeleteClientResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_DeleteClient_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) RotateClientSecret(ctx context.Context, in *RotateClientSecretRequest, opts ...grpc.CallOption) (*CreateClientResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(CreateClientResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_RotateClientSecret_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) GetClient(ctx context.Context, in *GetClientRequest, opts ...grpc.CallOption) (*GetClientResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(GetClientResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_GetClient_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) Clients(ctx context.Context, in *ClientsRequest, opts ...grpc.CallOption) (*ClientsResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ClientsResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_Clients_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) AddTrustedIssuer(ctx context.Context, in *AddTrustedIssuerRequest, opts ...grpc.CallOption) (*AddTrustedIssuerResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AddTrustedIssuerResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_AddTrustedIssuer_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) UpdateTrustedIssuer(ctx context.Context, in *UpdateTrustedIssuerRequest, opts ...grpc.CallOption) (*UpdateTrustedIssuerResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UpdateTrustedIssuerResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_UpdateTrustedIssuer_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) DeleteTrustedIssuer(ctx context.Context, in *DeleteTrustedIssuerRequest, opts ...grpc.CallOption) (*DeleteTrustedIssuerResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(DeleteTrustedIssuerResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_DeleteTrustedIssuer_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) GetTrustedIssuer(ctx context.Context, in *GetTrustedIssuerRequest, opts ...grpc.CallOption) (*GetTrustedIssuerResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(GetTrustedIssuerResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_GetTrustedIssuer_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerAdminServiceClient) TrustedIssuers(ctx context.Context, in *TrustedIssuersRequest, opts ...grpc.CallOption) (*TrustedIssuersResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(TrustedIssuersResponse) - err := c.cc.Invoke(ctx, AuthorizerAdminService_TrustedIssuers_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// AuthorizerAdminServiceServer is the server API for AuthorizerAdminService service. -// All implementations should embed UnimplementedAuthorizerAdminServiceServer -// for forward compatibility. -// -// AuthorizerAdminService is the single gRPC service for Authorizer's admin -// (super-admin-only) API surface. RPCs are added one domain group at a time; -// see specs/2026-06-15-authorizer-admin-service-plan.md. -type AuthorizerAdminServiceServer interface { - // AdminLogin validates the admin secret and establishes an admin session - // (Set-Cookie for browser callers). Public entry point — the ONLY admin RPC - // that does not require an existing super-admin session. - AdminLogin(context.Context, *AdminLoginRequest) (*AdminLoginResponse, error) - // AdminLogout clears the admin session cookie. Requires super-admin auth. - AdminLogout(context.Context, *AdminLogoutRequest) (*AdminLogoutResponse, error) - // AdminSession refreshes the admin session cookie. Requires super-admin auth. - AdminSession(context.Context, *AdminSessionRequest) (*AdminSessionResponse, error) - // AdminMeta returns admin-only configuration metadata (configured roles, - // default roles, protected roles). Requires super-admin auth. - AdminMeta(context.Context, *AdminMetaRequest) (*AdminMetaResponse, error) - // Users returns a paginated list of all users. Requires super-admin auth. - Users(context.Context, *UsersRequest) (*UsersResponse, error) - // User returns a single user by id or email. Requires super-admin auth. - User(context.Context, *UserRequest) (*UserResponse, error) - // UpdateUser updates a user's profile, roles, MFA, or verification state and - // returns the updated user. Requires super-admin auth. - UpdateUser(context.Context, *UpdateUserRequest) (*UpdateUserResponse, error) - // DeleteUser deletes a user (and associated OTP/verification data) by email. - // Requires super-admin auth. - DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error) - // VerificationRequests returns a paginated list of pending verification - // requests. Requires super-admin auth. - VerificationRequests(context.Context, *VerificationRequestsRequest) (*VerificationRequestsResponse, error) - // RevokeAccess revokes a user's access (sets the revoked timestamp), kills - // their sessions, and fires the access-revoked webhook. Requires super-admin - // auth. - RevokeAccess(context.Context, *RevokeAccessRequest) (*RevokeAccessResponse, error) - // EnableAccess re-enables a previously revoked user (clears the revoked - // timestamp) and fires the access-enabled webhook. Requires super-admin auth. - EnableAccess(context.Context, *EnableAccessRequest) (*EnableAccessResponse, error) - // InviteMembers creates accounts for new emails and sends invite emails. - // Requires super-admin auth and a configured email service. - InviteMembers(context.Context, *InviteMembersRequest) (*InviteMembersResponse, error) - // AddWebhook registers a new webhook for an event. Requires super-admin auth. - AddWebhook(context.Context, *AddWebhookRequest) (*AddWebhookResponse, error) - // UpdateWebhook updates an existing webhook's event, endpoint, headers, or - // enabled state. Requires super-admin auth. - UpdateWebhook(context.Context, *UpdateWebhookRequest) (*UpdateWebhookResponse, error) - // DeleteWebhook deletes a webhook by id. Requires super-admin auth. - DeleteWebhook(context.Context, *DeleteWebhookRequest) (*DeleteWebhookResponse, error) - // GetWebhook returns a single webhook by id. Requires super-admin auth. - GetWebhook(context.Context, *GetWebhookRequest) (*GetWebhookResponse, error) - // Webhooks returns a paginated list of webhooks. Requires super-admin auth. - Webhooks(context.Context, *WebhooksRequest) (*WebhooksResponse, error) - // WebhookLogs returns a paginated list of webhook delivery logs, optionally - // filtered by webhook id. Requires super-admin auth. - WebhookLogs(context.Context, *WebhookLogsRequest) (*WebhookLogsResponse, error) - // TestEndpoint sends a synthetic event payload to a webhook endpoint and - // returns the HTTP status and response body. Requires super-admin auth. - TestEndpoint(context.Context, *TestEndpointRequest) (*TestEndpointResponse, error) - // AddEmailTemplate creates a new email template for an event. Requires - // super-admin auth. - AddEmailTemplate(context.Context, *AddEmailTemplateRequest) (*AddEmailTemplateResponse, error) - // UpdateEmailTemplate updates an existing email template's event, subject, - // body, or design. Requires super-admin auth. - UpdateEmailTemplate(context.Context, *UpdateEmailTemplateRequest) (*UpdateEmailTemplateResponse, error) - // DeleteEmailTemplate deletes an email template by id. Requires super-admin - // auth. - DeleteEmailTemplate(context.Context, *DeleteEmailTemplateRequest) (*DeleteEmailTemplateResponse, error) - // EmailTemplates returns a paginated list of email templates. Requires - // super-admin auth. - EmailTemplates(context.Context, *EmailTemplatesRequest) (*EmailTemplatesResponse, error) - // AuditLogs returns a paginated, optionally-filtered list of audit log - // entries. Requires super-admin auth. - AuditLogs(context.Context, *AuditLogsRequest) (*AuditLogsResponse, error) - // FgaGetModel returns the active fine-grained authorization model as DSL. A - // store with no model yet returns an empty model (not an error). Requires - // super-admin auth. - FgaGetModel(context.Context, *FgaGetModelRequest) (*FgaGetModelResponse, error) - // FgaWriteModel installs a new fine-grained authorization model from its DSL - // and returns the new model id. Requires super-admin auth. Audited. - FgaWriteModel(context.Context, *FgaWriteModelRequest) (*FgaWriteModelResponse, error) - // FgaWriteTuples persists the given relationship tuples (additive). Requires - // super-admin auth. Audited. - FgaWriteTuples(context.Context, *FgaWriteTuplesRequest) (*FgaWriteTuplesResponse, error) - // FgaDeleteTuples removes the given relationship tuples. Requires super-admin - // auth. Audited. - FgaDeleteTuples(context.Context, *FgaDeleteTuplesRequest) (*FgaDeleteTuplesResponse, error) - // FgaReadTuples returns a page of persisted tuples matching the filter. - // Requires super-admin auth. - FgaReadTuples(context.Context, *FgaReadTuplesRequest) (*FgaReadTuplesResponse, error) - // FgaListUsers returns the fully-qualified user ids of user_type that have - // relation on object ("who can access this object?"). Requires super-admin - // auth. - FgaListUsers(context.Context, *FgaListUsersRequest) (*FgaListUsersResponse, error) - // FgaExpand returns the OpenFGA relationship/userset tree for (relation, - // object) as a JSON string (the explainability primitive). Requires - // super-admin auth. - FgaExpand(context.Context, *FgaExpandRequest) (*FgaExpandResponse, error) - // FgaReset deletes the entire fine-grained authorization store (the model, - // all its versions, and all tuples) and starts a fresh, empty store. Refused - // while any tuples still exist. Requires super-admin auth. Destructive and - // audited. - FgaReset(context.Context, *FgaResetRequest) (*FgaResetResponse, error) - // CreateClient provisions a new machine/workload identity and returns - // the generated client secret exactly once (only the bcrypt hash is stored). - // Requires super-admin auth. - CreateClient(context.Context, *CreateClientRequest) (*CreateClientResponse, error) - // UpdateClient updates a service account's name, description, allowed - // scopes, or active state. It never touches the client secret. Requires - // super-admin auth. - UpdateClient(context.Context, *UpdateClientRequest) (*UpdateClientResponse, error) - // DeleteClient deletes a service account by id, cascading to its - // trusted issuers. Requires super-admin auth. - DeleteClient(context.Context, *DeleteClientRequest) (*DeleteClientResponse, error) - // RotateClientSecret replaces the stored client secret with a fresh - // one and returns the new plaintext exactly once (the old secret stops - // validating immediately). Reuses CreateClientResponse — the only - // admin message that carries a secret. Requires super-admin auth. - RotateClientSecret(context.Context, *RotateClientSecretRequest) (*CreateClientResponse, error) - // GetClient returns a single service account by id. The client secret - // is never surfaced. Requires super-admin auth. - GetClient(context.Context, *GetClientRequest) (*GetClientResponse, error) - // Clients returns a paginated list of service accounts. Client secrets - // are never surfaced. Requires super-admin auth. - Clients(context.Context, *ClientsRequest) (*ClientsResponse, error) - // AddTrustedIssuer registers an external JWT issuer for a service account. - // subject_claim defaults to "sub" when omitted. Requires super-admin auth. - AddTrustedIssuer(context.Context, *AddTrustedIssuerRequest) (*AddTrustedIssuerResponse, error) - // UpdateTrustedIssuer updates a trusted issuer's name, JWKS URL, expected - // audience, active state, or SPIFFE refresh hint. Requires super-admin auth. - UpdateTrustedIssuer(context.Context, *UpdateTrustedIssuerRequest) (*UpdateTrustedIssuerResponse, error) - // DeleteTrustedIssuer deletes a trusted issuer by id. Requires super-admin - // auth. - DeleteTrustedIssuer(context.Context, *DeleteTrustedIssuerRequest) (*DeleteTrustedIssuerResponse, error) - // GetTrustedIssuer returns a single trusted issuer by id. Requires super-admin - // auth. - GetTrustedIssuer(context.Context, *GetTrustedIssuerRequest) (*GetTrustedIssuerResponse, error) - // TrustedIssuers returns a paginated list of trusted issuers, optionally - // filtered by service_account_id. Requires super-admin auth. - TrustedIssuers(context.Context, *TrustedIssuersRequest) (*TrustedIssuersResponse, error) -} - -// UnimplementedAuthorizerAdminServiceServer should 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. -type UnimplementedAuthorizerAdminServiceServer struct{} - -func (UnimplementedAuthorizerAdminServiceServer) AdminLogin(context.Context, *AdminLoginRequest) (*AdminLoginResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AdminLogin not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) AdminLogout(context.Context, *AdminLogoutRequest) (*AdminLogoutResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AdminLogout not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) AdminSession(context.Context, *AdminSessionRequest) (*AdminSessionResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AdminSession not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) AdminMeta(context.Context, *AdminMetaRequest) (*AdminMetaResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AdminMeta not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) Users(context.Context, *UsersRequest) (*UsersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Users not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) User(context.Context, *UserRequest) (*UserResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method User not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) UpdateUser(context.Context, *UpdateUserRequest) (*UpdateUserResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateUser not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) VerificationRequests(context.Context, *VerificationRequestsRequest) (*VerificationRequestsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method VerificationRequests not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) RevokeAccess(context.Context, *RevokeAccessRequest) (*RevokeAccessResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RevokeAccess not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) EnableAccess(context.Context, *EnableAccessRequest) (*EnableAccessResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method EnableAccess not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) InviteMembers(context.Context, *InviteMembersRequest) (*InviteMembersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method InviteMembers not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) AddWebhook(context.Context, *AddWebhookRequest) (*AddWebhookResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddWebhook not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) UpdateWebhook(context.Context, *UpdateWebhookRequest) (*UpdateWebhookResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateWebhook not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) DeleteWebhook(context.Context, *DeleteWebhookRequest) (*DeleteWebhookResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteWebhook not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) GetWebhook(context.Context, *GetWebhookRequest) (*GetWebhookResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetWebhook not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) Webhooks(context.Context, *WebhooksRequest) (*WebhooksResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Webhooks not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) WebhookLogs(context.Context, *WebhookLogsRequest) (*WebhookLogsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method WebhookLogs not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) TestEndpoint(context.Context, *TestEndpointRequest) (*TestEndpointResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method TestEndpoint not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) AddEmailTemplate(context.Context, *AddEmailTemplateRequest) (*AddEmailTemplateResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddEmailTemplate not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) UpdateEmailTemplate(context.Context, *UpdateEmailTemplateRequest) (*UpdateEmailTemplateResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateEmailTemplate not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) DeleteEmailTemplate(context.Context, *DeleteEmailTemplateRequest) (*DeleteEmailTemplateResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteEmailTemplate not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) EmailTemplates(context.Context, *EmailTemplatesRequest) (*EmailTemplatesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method EmailTemplates not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) AuditLogs(context.Context, *AuditLogsRequest) (*AuditLogsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AuditLogs not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) FgaGetModel(context.Context, *FgaGetModelRequest) (*FgaGetModelResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method FgaGetModel not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) FgaWriteModel(context.Context, *FgaWriteModelRequest) (*FgaWriteModelResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method FgaWriteModel not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) FgaWriteTuples(context.Context, *FgaWriteTuplesRequest) (*FgaWriteTuplesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method FgaWriteTuples not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) FgaDeleteTuples(context.Context, *FgaDeleteTuplesRequest) (*FgaDeleteTuplesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method FgaDeleteTuples not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) FgaReadTuples(context.Context, *FgaReadTuplesRequest) (*FgaReadTuplesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method FgaReadTuples not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) FgaListUsers(context.Context, *FgaListUsersRequest) (*FgaListUsersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method FgaListUsers not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) FgaExpand(context.Context, *FgaExpandRequest) (*FgaExpandResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method FgaExpand not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) FgaReset(context.Context, *FgaResetRequest) (*FgaResetResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method FgaReset not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) CreateClient(context.Context, *CreateClientRequest) (*CreateClientResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateClient not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) UpdateClient(context.Context, *UpdateClientRequest) (*UpdateClientResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateClient not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) DeleteClient(context.Context, *DeleteClientRequest) (*DeleteClientResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteClient not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) RotateClientSecret(context.Context, *RotateClientSecretRequest) (*CreateClientResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RotateClientSecret not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) GetClient(context.Context, *GetClientRequest) (*GetClientResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetClient not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) Clients(context.Context, *ClientsRequest) (*ClientsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Clients not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) AddTrustedIssuer(context.Context, *AddTrustedIssuerRequest) (*AddTrustedIssuerResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddTrustedIssuer not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) UpdateTrustedIssuer(context.Context, *UpdateTrustedIssuerRequest) (*UpdateTrustedIssuerResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateTrustedIssuer not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) DeleteTrustedIssuer(context.Context, *DeleteTrustedIssuerRequest) (*DeleteTrustedIssuerResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteTrustedIssuer not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) GetTrustedIssuer(context.Context, *GetTrustedIssuerRequest) (*GetTrustedIssuerResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetTrustedIssuer not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) TrustedIssuers(context.Context, *TrustedIssuersRequest) (*TrustedIssuersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method TrustedIssuers not implemented") -} -func (UnimplementedAuthorizerAdminServiceServer) testEmbeddedByValue() {} - -// UnsafeAuthorizerAdminServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to AuthorizerAdminServiceServer will -// result in compilation errors. -type UnsafeAuthorizerAdminServiceServer interface { - mustEmbedUnimplementedAuthorizerAdminServiceServer() -} - -func RegisterAuthorizerAdminServiceServer(s grpc.ServiceRegistrar, srv AuthorizerAdminServiceServer) { - // If the following call pancis, it indicates UnimplementedAuthorizerAdminServiceServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } - s.RegisterService(&AuthorizerAdminService_ServiceDesc, srv) -} - -func _AuthorizerAdminService_AdminLogin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AdminLoginRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).AdminLogin(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_AdminLogin_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).AdminLogin(ctx, req.(*AdminLoginRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_AdminLogout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AdminLogoutRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).AdminLogout(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_AdminLogout_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).AdminLogout(ctx, req.(*AdminLogoutRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_AdminSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AdminSessionRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).AdminSession(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_AdminSession_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).AdminSession(ctx, req.(*AdminSessionRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_AdminMeta_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AdminMetaRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).AdminMeta(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_AdminMeta_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).AdminMeta(ctx, req.(*AdminMetaRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_Users_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UsersRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).Users(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_Users_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).Users(ctx, req.(*UsersRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_User_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UserRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).User(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_User_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).User(ctx, req.(*UserRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_UpdateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateUserRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).UpdateUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_UpdateUser_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).UpdateUser(ctx, req.(*UpdateUserRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_DeleteUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteUserRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).DeleteUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_DeleteUser_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).DeleteUser(ctx, req.(*DeleteUserRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_VerificationRequests_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(VerificationRequestsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).VerificationRequests(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_VerificationRequests_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).VerificationRequests(ctx, req.(*VerificationRequestsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_RevokeAccess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RevokeAccessRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).RevokeAccess(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_RevokeAccess_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).RevokeAccess(ctx, req.(*RevokeAccessRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_EnableAccess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(EnableAccessRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).EnableAccess(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_EnableAccess_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).EnableAccess(ctx, req.(*EnableAccessRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_InviteMembers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(InviteMembersRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).InviteMembers(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_InviteMembers_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).InviteMembers(ctx, req.(*InviteMembersRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_AddWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddWebhookRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).AddWebhook(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_AddWebhook_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).AddWebhook(ctx, req.(*AddWebhookRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_UpdateWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateWebhookRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).UpdateWebhook(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_UpdateWebhook_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).UpdateWebhook(ctx, req.(*UpdateWebhookRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_DeleteWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteWebhookRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).DeleteWebhook(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_DeleteWebhook_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).DeleteWebhook(ctx, req.(*DeleteWebhookRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_GetWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetWebhookRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).GetWebhook(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_GetWebhook_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).GetWebhook(ctx, req.(*GetWebhookRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_Webhooks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(WebhooksRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).Webhooks(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_Webhooks_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).Webhooks(ctx, req.(*WebhooksRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_WebhookLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(WebhookLogsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).WebhookLogs(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_WebhookLogs_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).WebhookLogs(ctx, req.(*WebhookLogsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_TestEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(TestEndpointRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).TestEndpoint(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_TestEndpoint_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).TestEndpoint(ctx, req.(*TestEndpointRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_AddEmailTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddEmailTemplateRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).AddEmailTemplate(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_AddEmailTemplate_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).AddEmailTemplate(ctx, req.(*AddEmailTemplateRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_UpdateEmailTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateEmailTemplateRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).UpdateEmailTemplate(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_UpdateEmailTemplate_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).UpdateEmailTemplate(ctx, req.(*UpdateEmailTemplateRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_DeleteEmailTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteEmailTemplateRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).DeleteEmailTemplate(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_DeleteEmailTemplate_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).DeleteEmailTemplate(ctx, req.(*DeleteEmailTemplateRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_EmailTemplates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(EmailTemplatesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).EmailTemplates(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_EmailTemplates_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).EmailTemplates(ctx, req.(*EmailTemplatesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_AuditLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AuditLogsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).AuditLogs(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_AuditLogs_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).AuditLogs(ctx, req.(*AuditLogsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_FgaGetModel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FgaGetModelRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).FgaGetModel(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_FgaGetModel_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).FgaGetModel(ctx, req.(*FgaGetModelRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_FgaWriteModel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FgaWriteModelRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).FgaWriteModel(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_FgaWriteModel_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).FgaWriteModel(ctx, req.(*FgaWriteModelRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_FgaWriteTuples_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FgaWriteTuplesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).FgaWriteTuples(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_FgaWriteTuples_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).FgaWriteTuples(ctx, req.(*FgaWriteTuplesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_FgaDeleteTuples_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FgaDeleteTuplesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).FgaDeleteTuples(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_FgaDeleteTuples_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).FgaDeleteTuples(ctx, req.(*FgaDeleteTuplesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_FgaReadTuples_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FgaReadTuplesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).FgaReadTuples(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_FgaReadTuples_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).FgaReadTuples(ctx, req.(*FgaReadTuplesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_FgaListUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FgaListUsersRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).FgaListUsers(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_FgaListUsers_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).FgaListUsers(ctx, req.(*FgaListUsersRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_FgaExpand_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FgaExpandRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).FgaExpand(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_FgaExpand_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).FgaExpand(ctx, req.(*FgaExpandRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_FgaReset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FgaResetRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).FgaReset(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_FgaReset_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).FgaReset(ctx, req.(*FgaResetRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_CreateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateClientRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).CreateClient(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_CreateClient_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).CreateClient(ctx, req.(*CreateClientRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_UpdateClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateClientRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).UpdateClient(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_UpdateClient_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).UpdateClient(ctx, req.(*UpdateClientRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_DeleteClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteClientRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).DeleteClient(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_DeleteClient_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).DeleteClient(ctx, req.(*DeleteClientRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_RotateClientSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RotateClientSecretRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).RotateClientSecret(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_RotateClientSecret_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).RotateClientSecret(ctx, req.(*RotateClientSecretRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_GetClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetClientRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).GetClient(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_GetClient_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).GetClient(ctx, req.(*GetClientRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_Clients_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ClientsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).Clients(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_Clients_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).Clients(ctx, req.(*ClientsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_AddTrustedIssuer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddTrustedIssuerRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).AddTrustedIssuer(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_AddTrustedIssuer_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).AddTrustedIssuer(ctx, req.(*AddTrustedIssuerRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_UpdateTrustedIssuer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateTrustedIssuerRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).UpdateTrustedIssuer(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_UpdateTrustedIssuer_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).UpdateTrustedIssuer(ctx, req.(*UpdateTrustedIssuerRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_DeleteTrustedIssuer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteTrustedIssuerRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).DeleteTrustedIssuer(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_DeleteTrustedIssuer_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).DeleteTrustedIssuer(ctx, req.(*DeleteTrustedIssuerRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_GetTrustedIssuer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetTrustedIssuerRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).GetTrustedIssuer(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_GetTrustedIssuer_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).GetTrustedIssuer(ctx, req.(*GetTrustedIssuerRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerAdminService_TrustedIssuers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(TrustedIssuersRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerAdminServiceServer).TrustedIssuers(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerAdminService_TrustedIssuers_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerAdminServiceServer).TrustedIssuers(ctx, req.(*TrustedIssuersRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// AuthorizerAdminService_ServiceDesc is the grpc.ServiceDesc for AuthorizerAdminService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var AuthorizerAdminService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "authorizer.v1.AuthorizerAdminService", - HandlerType: (*AuthorizerAdminServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "AdminLogin", - Handler: _AuthorizerAdminService_AdminLogin_Handler, - }, - { - MethodName: "AdminLogout", - Handler: _AuthorizerAdminService_AdminLogout_Handler, - }, - { - MethodName: "AdminSession", - Handler: _AuthorizerAdminService_AdminSession_Handler, - }, - { - MethodName: "AdminMeta", - Handler: _AuthorizerAdminService_AdminMeta_Handler, - }, - { - MethodName: "Users", - Handler: _AuthorizerAdminService_Users_Handler, - }, - { - MethodName: "User", - Handler: _AuthorizerAdminService_User_Handler, - }, - { - MethodName: "UpdateUser", - Handler: _AuthorizerAdminService_UpdateUser_Handler, - }, - { - MethodName: "DeleteUser", - Handler: _AuthorizerAdminService_DeleteUser_Handler, - }, - { - MethodName: "VerificationRequests", - Handler: _AuthorizerAdminService_VerificationRequests_Handler, - }, - { - MethodName: "RevokeAccess", - Handler: _AuthorizerAdminService_RevokeAccess_Handler, - }, - { - MethodName: "EnableAccess", - Handler: _AuthorizerAdminService_EnableAccess_Handler, - }, - { - MethodName: "InviteMembers", - Handler: _AuthorizerAdminService_InviteMembers_Handler, - }, - { - MethodName: "AddWebhook", - Handler: _AuthorizerAdminService_AddWebhook_Handler, - }, - { - MethodName: "UpdateWebhook", - Handler: _AuthorizerAdminService_UpdateWebhook_Handler, - }, - { - MethodName: "DeleteWebhook", - Handler: _AuthorizerAdminService_DeleteWebhook_Handler, - }, - { - MethodName: "GetWebhook", - Handler: _AuthorizerAdminService_GetWebhook_Handler, - }, - { - MethodName: "Webhooks", - Handler: _AuthorizerAdminService_Webhooks_Handler, - }, - { - MethodName: "WebhookLogs", - Handler: _AuthorizerAdminService_WebhookLogs_Handler, - }, - { - MethodName: "TestEndpoint", - Handler: _AuthorizerAdminService_TestEndpoint_Handler, - }, - { - MethodName: "AddEmailTemplate", - Handler: _AuthorizerAdminService_AddEmailTemplate_Handler, - }, - { - MethodName: "UpdateEmailTemplate", - Handler: _AuthorizerAdminService_UpdateEmailTemplate_Handler, - }, - { - MethodName: "DeleteEmailTemplate", - Handler: _AuthorizerAdminService_DeleteEmailTemplate_Handler, - }, - { - MethodName: "EmailTemplates", - Handler: _AuthorizerAdminService_EmailTemplates_Handler, - }, - { - MethodName: "AuditLogs", - Handler: _AuthorizerAdminService_AuditLogs_Handler, - }, - { - MethodName: "FgaGetModel", - Handler: _AuthorizerAdminService_FgaGetModel_Handler, - }, - { - MethodName: "FgaWriteModel", - Handler: _AuthorizerAdminService_FgaWriteModel_Handler, - }, - { - MethodName: "FgaWriteTuples", - Handler: _AuthorizerAdminService_FgaWriteTuples_Handler, - }, - { - MethodName: "FgaDeleteTuples", - Handler: _AuthorizerAdminService_FgaDeleteTuples_Handler, - }, - { - MethodName: "FgaReadTuples", - Handler: _AuthorizerAdminService_FgaReadTuples_Handler, - }, - { - MethodName: "FgaListUsers", - Handler: _AuthorizerAdminService_FgaListUsers_Handler, - }, - { - MethodName: "FgaExpand", - Handler: _AuthorizerAdminService_FgaExpand_Handler, - }, - { - MethodName: "FgaReset", - Handler: _AuthorizerAdminService_FgaReset_Handler, - }, - { - MethodName: "CreateClient", - Handler: _AuthorizerAdminService_CreateClient_Handler, - }, - { - MethodName: "UpdateClient", - Handler: _AuthorizerAdminService_UpdateClient_Handler, - }, - { - MethodName: "DeleteClient", - Handler: _AuthorizerAdminService_DeleteClient_Handler, - }, - { - MethodName: "RotateClientSecret", - Handler: _AuthorizerAdminService_RotateClientSecret_Handler, - }, - { - MethodName: "GetClient", - Handler: _AuthorizerAdminService_GetClient_Handler, - }, - { - MethodName: "Clients", - Handler: _AuthorizerAdminService_Clients_Handler, - }, - { - MethodName: "AddTrustedIssuer", - Handler: _AuthorizerAdminService_AddTrustedIssuer_Handler, - }, - { - MethodName: "UpdateTrustedIssuer", - Handler: _AuthorizerAdminService_UpdateTrustedIssuer_Handler, - }, - { - MethodName: "DeleteTrustedIssuer", - Handler: _AuthorizerAdminService_DeleteTrustedIssuer_Handler, - }, - { - MethodName: "GetTrustedIssuer", - Handler: _AuthorizerAdminService_GetTrustedIssuer_Handler, - }, - { - MethodName: "TrustedIssuers", - Handler: _AuthorizerAdminService_TrustedIssuers_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "authorizer/v1/admin.proto", -} diff --git a/with-grpc/gen/authorizer/v1/annotations.pb.go b/with-grpc/gen/authorizer/v1/annotations.pb.go deleted file mode 100644 index 5ed4a95..0000000 --- a/with-grpc/gen/authorizer/v1/annotations.pb.go +++ /dev/null @@ -1,330 +0,0 @@ -// proto/authorizer/v1/annotations.proto -// -// Custom proto options that decorate Authorizer service methods with -// authorization, audit, MCP-exposure, and visibility metadata. -// -// All options live on MethodOptions and are read at runtime by the gRPC -// server (auth/permission/audit interceptors) and by the MCP server, and -// at codegen time by the OpenAPI generator. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.2 -// protoc (unknown) -// source: authorizer/v1/annotations.proto - -package authorizerv1 - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - descriptorpb "google.golang.org/protobuf/types/descriptorpb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// PermissionRequirement names one (resource, scope) pair the caller must hold -// to invoke the RPC. Multiple values on a method are AND-combined (the caller -// must hold *all* of them); to express OR semantics, list the alternatives in -// a single PermissionRequirement with a wildcard scope and let the policy -// engine evaluate. -type PermissionRequirement struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Resource name as registered in the authz subsystem (e.g. "user", - // "webhook"). Required. - Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"` - // Scope name (e.g. "read", "write", "delete"). Required. - Scope string `protobuf:"bytes,2,opt,name=scope,proto3" json:"scope,omitempty"` -} - -func (x *PermissionRequirement) Reset() { - *x = PermissionRequirement{} - mi := &file_authorizer_v1_annotations_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PermissionRequirement) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PermissionRequirement) ProtoMessage() {} - -func (x *PermissionRequirement) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_annotations_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PermissionRequirement.ProtoReflect.Descriptor instead. -func (*PermissionRequirement) Descriptor() ([]byte, []int) { - return file_authorizer_v1_annotations_proto_rawDescGZIP(), []int{0} -} - -func (x *PermissionRequirement) GetResource() string { - if x != nil { - return x.Resource - } - return "" -} - -func (x *PermissionRequirement) GetScope() string { - if x != nil { - return x.Scope - } - return "" -} - -// McpTool marks an RPC as exposed via the Authorizer MCP server. -// Defaults to "not exposed" when the option is absent. -type McpTool struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Whether the RPC is reachable as an MCP tool. Default false. - Exposed bool `protobuf:"varint,1,opt,name=exposed,proto3" json:"exposed,omitempty"` - // Optional override for the tool name surfaced to MCP clients. When unset, - // the snake_case form of the RPC method name is used. - ToolName string `protobuf:"bytes,2,opt,name=tool_name,json=toolName,proto3" json:"tool_name,omitempty"` - // Hint to the MCP host that the tool mutates state in a way that warrants - // explicit user confirmation (e.g. delete operations). - Destructive bool `protobuf:"varint,3,opt,name=destructive,proto3" json:"destructive,omitempty"` -} - -func (x *McpTool) Reset() { - *x = McpTool{} - mi := &file_authorizer_v1_annotations_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *McpTool) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*McpTool) ProtoMessage() {} - -func (x *McpTool) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_annotations_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use McpTool.ProtoReflect.Descriptor instead. -func (*McpTool) Descriptor() ([]byte, []int) { - return file_authorizer_v1_annotations_proto_rawDescGZIP(), []int{1} -} - -func (x *McpTool) GetExposed() bool { - if x != nil { - return x.Exposed - } - return false -} - -func (x *McpTool) GetToolName() string { - if x != nil { - return x.ToolName - } - return "" -} - -func (x *McpTool) GetDestructive() bool { - if x != nil { - return x.Destructive - } - return false -} - -var file_authorizer_v1_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ - { - ExtendedType: (*descriptorpb.MethodOptions)(nil), - ExtensionType: ([]*PermissionRequirement)(nil), - Field: 50001, - Name: "authorizer.v1.required_permissions", - Tag: "bytes,50001,rep,name=required_permissions", - Filename: "authorizer/v1/annotations.proto", - }, - { - ExtendedType: (*descriptorpb.MethodOptions)(nil), - ExtensionType: (*McpTool)(nil), - Field: 50002, - Name: "authorizer.v1.mcp_tool", - Tag: "bytes,50002,opt,name=mcp_tool", - Filename: "authorizer/v1/annotations.proto", - }, - { - ExtendedType: (*descriptorpb.MethodOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 50003, - Name: "authorizer.v1.audit_log", - Tag: "varint,50003,opt,name=audit_log", - Filename: "authorizer/v1/annotations.proto", - }, - { - ExtendedType: (*descriptorpb.MethodOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 50004, - Name: "authorizer.v1.public", - Tag: "varint,50004,opt,name=public", - Filename: "authorizer/v1/annotations.proto", - }, -} - -// Extension fields to descriptorpb.MethodOptions. -var ( - // All permissions the caller must hold (AND). Empty means "no authz check - // beyond the auth interceptor". - // - // repeated authorizer.v1.PermissionRequirement required_permissions = 50001; - E_RequiredPermissions = &file_authorizer_v1_annotations_proto_extTypes[0] - // MCP-tool exposure metadata; absent means "not exposed". - // - // optional authorizer.v1.McpTool mcp_tool = 50002; - E_McpTool = &file_authorizer_v1_annotations_proto_extTypes[1] - // When true, the audit interceptor records an entry for the invocation. - // - // optional bool audit_log = 50003; - E_AuditLog = &file_authorizer_v1_annotations_proto_extTypes[2] - // When true, the auth interceptor allows unauthenticated callers. Use for - // login, signup, magic-link request, password-reset request, etc. - // - // optional bool public = 50004; - E_Public = &file_authorizer_v1_annotations_proto_extTypes[3] -) - -var File_authorizer_v1_annotations_proto protoreflect.FileDescriptor - -var file_authorizer_v1_annotations_proto_rawDesc = []byte{ - 0x0a, 0x1f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x49, 0x0a, 0x15, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x22, 0x62, 0x0a, - 0x07, 0x4d, 0x63, 0x70, 0x54, 0x6f, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6f, - 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6f, 0x73, - 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x3a, 0x79, 0x0a, 0x14, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd1, 0x86, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x53, 0x0a, 0x08, - 0x6d, 0x63, 0x70, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd2, 0x86, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x63, 0x70, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x07, 0x6d, 0x63, 0x70, 0x54, 0x6f, 0x6f, - 0x6c, 0x3a, 0x3d, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x12, 0x1e, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd3, - 0x86, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x75, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x67, - 0x3a, 0x38, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd4, 0x86, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0xc6, 0x01, 0x0a, 0x11, 0x63, - 0x6f, 0x6d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x42, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x65, - 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x2d, 0x67, 0x72, 0x70, - 0x63, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x76, 0x31, - 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_authorizer_v1_annotations_proto_rawDescOnce sync.Once - file_authorizer_v1_annotations_proto_rawDescData = file_authorizer_v1_annotations_proto_rawDesc -) - -func file_authorizer_v1_annotations_proto_rawDescGZIP() []byte { - file_authorizer_v1_annotations_proto_rawDescOnce.Do(func() { - file_authorizer_v1_annotations_proto_rawDescData = protoimpl.X.CompressGZIP(file_authorizer_v1_annotations_proto_rawDescData) - }) - return file_authorizer_v1_annotations_proto_rawDescData -} - -var file_authorizer_v1_annotations_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_authorizer_v1_annotations_proto_goTypes = []any{ - (*PermissionRequirement)(nil), // 0: authorizer.v1.PermissionRequirement - (*McpTool)(nil), // 1: authorizer.v1.McpTool - (*descriptorpb.MethodOptions)(nil), // 2: google.protobuf.MethodOptions -} -var file_authorizer_v1_annotations_proto_depIdxs = []int32{ - 2, // 0: authorizer.v1.required_permissions:extendee -> google.protobuf.MethodOptions - 2, // 1: authorizer.v1.mcp_tool:extendee -> google.protobuf.MethodOptions - 2, // 2: authorizer.v1.audit_log:extendee -> google.protobuf.MethodOptions - 2, // 3: authorizer.v1.public:extendee -> google.protobuf.MethodOptions - 0, // 4: authorizer.v1.required_permissions:type_name -> authorizer.v1.PermissionRequirement - 1, // 5: authorizer.v1.mcp_tool:type_name -> authorizer.v1.McpTool - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 4, // [4:6] is the sub-list for extension type_name - 0, // [0:4] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_authorizer_v1_annotations_proto_init() } -func file_authorizer_v1_annotations_proto_init() { - if File_authorizer_v1_annotations_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_authorizer_v1_annotations_proto_rawDesc, - NumEnums: 0, - NumMessages: 2, - NumExtensions: 4, - NumServices: 0, - }, - GoTypes: file_authorizer_v1_annotations_proto_goTypes, - DependencyIndexes: file_authorizer_v1_annotations_proto_depIdxs, - MessageInfos: file_authorizer_v1_annotations_proto_msgTypes, - ExtensionInfos: file_authorizer_v1_annotations_proto_extTypes, - }.Build() - File_authorizer_v1_annotations_proto = out.File - file_authorizer_v1_annotations_proto_rawDesc = nil - file_authorizer_v1_annotations_proto_goTypes = nil - file_authorizer_v1_annotations_proto_depIdxs = nil -} diff --git a/with-grpc/gen/authorizer/v1/authorizer.pb.go b/with-grpc/gen/authorizer/v1/authorizer.pb.go deleted file mode 100644 index 3250712..0000000 --- a/with-grpc/gen/authorizer/v1/authorizer.pb.go +++ /dev/null @@ -1,2667 +0,0 @@ -// AuthorizerService is the single gRPC service that exposes Authorizer's -// public API. Method names match the GraphQL operation names 1:1 -// (snake_case in GraphQL → PascalCase in proto): Signup, Login, -// MagicLinkLogin, VerifyEmail, ResendVerifyEmail, ForgotPassword, -// ResetPassword, VerifyOtp, ResendOtp, UpdateProfile, DeactivateAccount, -// Revoke, Meta, Session, Profile, ValidateJwtToken, ValidateSession, -// CheckPermissions, ListPermissions, Logout. -// -// Why one service: clients consume a single typed client per language, -// discovery is trivial, and the surface mirrors the GraphQL one users -// already know. The trade-off is that we lose resource-oriented evolution -// (no `List/Get/Create` symmetry per resource) — acceptable for an auth -// surface where most operations are stateless verbs anyway. -// -// REST mapping follows a simple rule: -// - GET /v1/{method} when the request body is empty (Meta, Profile, -// Logout) -// - POST /v1/{method} otherwise - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.2 -// protoc (unknown) -// source: authorizer/v1/authorizer.proto - -package authorizerv1 - -import ( - _ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate" - _ "google.golang.org/genproto/googleapis/api/annotations" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type SignupRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - PhoneNumber string `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` - Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` - ConfirmPassword string `protobuf:"bytes,4,opt,name=confirm_password,json=confirmPassword,proto3" json:"confirm_password,omitempty"` - GivenName string `protobuf:"bytes,5,opt,name=given_name,json=givenName,proto3" json:"given_name,omitempty"` - FamilyName string `protobuf:"bytes,6,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"` - MiddleName string `protobuf:"bytes,7,opt,name=middle_name,json=middleName,proto3" json:"middle_name,omitempty"` - Nickname string `protobuf:"bytes,8,opt,name=nickname,proto3" json:"nickname,omitempty"` - Gender string `protobuf:"bytes,9,opt,name=gender,proto3" json:"gender,omitempty"` - Birthdate string `protobuf:"bytes,10,opt,name=birthdate,proto3" json:"birthdate,omitempty"` - Picture string `protobuf:"bytes,11,opt,name=picture,proto3" json:"picture,omitempty"` - Roles []string `protobuf:"bytes,12,rep,name=roles,proto3" json:"roles,omitempty"` - Scope []string `protobuf:"bytes,13,rep,name=scope,proto3" json:"scope,omitempty"` - RedirectUri string `protobuf:"bytes,14,opt,name=redirect_uri,json=redirectUri,proto3" json:"redirect_uri,omitempty"` - IsMultiFactorAuthEnabled bool `protobuf:"varint,15,opt,name=is_multi_factor_auth_enabled,json=isMultiFactorAuthEnabled,proto3" json:"is_multi_factor_auth_enabled,omitempty"` - State string `protobuf:"bytes,16,opt,name=state,proto3" json:"state,omitempty"` - AppData *AppData `protobuf:"bytes,17,opt,name=app_data,json=appData,proto3" json:"app_data,omitempty"` -} - -func (x *SignupRequest) Reset() { - *x = SignupRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SignupRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SignupRequest) ProtoMessage() {} - -func (x *SignupRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SignupRequest.ProtoReflect.Descriptor instead. -func (*SignupRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{0} -} - -func (x *SignupRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *SignupRequest) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *SignupRequest) GetPassword() string { - if x != nil { - return x.Password - } - return "" -} - -func (x *SignupRequest) GetConfirmPassword() string { - if x != nil { - return x.ConfirmPassword - } - return "" -} - -func (x *SignupRequest) GetGivenName() string { - if x != nil { - return x.GivenName - } - return "" -} - -func (x *SignupRequest) GetFamilyName() string { - if x != nil { - return x.FamilyName - } - return "" -} - -func (x *SignupRequest) GetMiddleName() string { - if x != nil { - return x.MiddleName - } - return "" -} - -func (x *SignupRequest) GetNickname() string { - if x != nil { - return x.Nickname - } - return "" -} - -func (x *SignupRequest) GetGender() string { - if x != nil { - return x.Gender - } - return "" -} - -func (x *SignupRequest) GetBirthdate() string { - if x != nil { - return x.Birthdate - } - return "" -} - -func (x *SignupRequest) GetPicture() string { - if x != nil { - return x.Picture - } - return "" -} - -func (x *SignupRequest) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *SignupRequest) GetScope() []string { - if x != nil { - return x.Scope - } - return nil -} - -func (x *SignupRequest) GetRedirectUri() string { - if x != nil { - return x.RedirectUri - } - return "" -} - -func (x *SignupRequest) GetIsMultiFactorAuthEnabled() bool { - if x != nil { - return x.IsMultiFactorAuthEnabled - } - return false -} - -func (x *SignupRequest) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *SignupRequest) GetAppData() *AppData { - if x != nil { - return x.AppData - } - return nil -} - -type LoginRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - PhoneNumber string `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` - Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` - Roles []string `protobuf:"bytes,4,rep,name=roles,proto3" json:"roles,omitempty"` - Scope []string `protobuf:"bytes,5,rep,name=scope,proto3" json:"scope,omitempty"` - State string `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"` -} - -func (x *LoginRequest) Reset() { - *x = LoginRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LoginRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LoginRequest) ProtoMessage() {} - -func (x *LoginRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LoginRequest.ProtoReflect.Descriptor instead. -func (*LoginRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{1} -} - -func (x *LoginRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *LoginRequest) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *LoginRequest) GetPassword() string { - if x != nil { - return x.Password - } - return "" -} - -func (x *LoginRequest) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *LoginRequest) GetScope() []string { - if x != nil { - return x.Scope - } - return nil -} - -func (x *LoginRequest) GetState() string { - if x != nil { - return x.State - } - return "" -} - -type LogoutRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *LogoutRequest) Reset() { - *x = LogoutRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LogoutRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LogoutRequest) ProtoMessage() {} - -func (x *LogoutRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[2] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LogoutRequest.ProtoReflect.Descriptor instead. -func (*LogoutRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{2} -} - -type LogoutResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *LogoutResponse) Reset() { - *x = LogoutResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LogoutResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LogoutResponse) ProtoMessage() {} - -func (x *LogoutResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[3] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LogoutResponse.ProtoReflect.Descriptor instead. -func (*LogoutResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{3} -} - -func (x *LogoutResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type MagicLinkLoginRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - Scope []string `protobuf:"bytes,3,rep,name=scope,proto3" json:"scope,omitempty"` - State string `protobuf:"bytes,4,opt,name=state,proto3" json:"state,omitempty"` - RedirectUri string `protobuf:"bytes,5,opt,name=redirect_uri,json=redirectUri,proto3" json:"redirect_uri,omitempty"` -} - -func (x *MagicLinkLoginRequest) Reset() { - *x = MagicLinkLoginRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *MagicLinkLoginRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MagicLinkLoginRequest) ProtoMessage() {} - -func (x *MagicLinkLoginRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[4] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MagicLinkLoginRequest.ProtoReflect.Descriptor instead. -func (*MagicLinkLoginRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{4} -} - -func (x *MagicLinkLoginRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *MagicLinkLoginRequest) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *MagicLinkLoginRequest) GetScope() []string { - if x != nil { - return x.Scope - } - return nil -} - -func (x *MagicLinkLoginRequest) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *MagicLinkLoginRequest) GetRedirectUri() string { - if x != nil { - return x.RedirectUri - } - return "" -} - -type MagicLinkLoginResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *MagicLinkLoginResponse) Reset() { - *x = MagicLinkLoginResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *MagicLinkLoginResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MagicLinkLoginResponse) ProtoMessage() {} - -func (x *MagicLinkLoginResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[5] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MagicLinkLoginResponse.ProtoReflect.Descriptor instead. -func (*MagicLinkLoginResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{5} -} - -func (x *MagicLinkLoginResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type VerifyEmailRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - State string `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` -} - -func (x *VerifyEmailRequest) Reset() { - *x = VerifyEmailRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *VerifyEmailRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VerifyEmailRequest) ProtoMessage() {} - -func (x *VerifyEmailRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[6] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use VerifyEmailRequest.ProtoReflect.Descriptor instead. -func (*VerifyEmailRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{6} -} - -func (x *VerifyEmailRequest) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -func (x *VerifyEmailRequest) GetState() string { - if x != nil { - return x.State - } - return "" -} - -type ResendVerifyEmailRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - Identifier string `protobuf:"bytes,2,opt,name=identifier,proto3" json:"identifier,omitempty"` - State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` -} - -func (x *ResendVerifyEmailRequest) Reset() { - *x = ResendVerifyEmailRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ResendVerifyEmailRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResendVerifyEmailRequest) ProtoMessage() {} - -func (x *ResendVerifyEmailRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[7] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResendVerifyEmailRequest.ProtoReflect.Descriptor instead. -func (*ResendVerifyEmailRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{7} -} - -func (x *ResendVerifyEmailRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *ResendVerifyEmailRequest) GetIdentifier() string { - if x != nil { - return x.Identifier - } - return "" -} - -func (x *ResendVerifyEmailRequest) GetState() string { - if x != nil { - return x.State - } - return "" -} - -type ResendVerifyEmailResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *ResendVerifyEmailResponse) Reset() { - *x = ResendVerifyEmailResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ResendVerifyEmailResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResendVerifyEmailResponse) ProtoMessage() {} - -func (x *ResendVerifyEmailResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[8] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResendVerifyEmailResponse.ProtoReflect.Descriptor instead. -func (*ResendVerifyEmailResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{8} -} - -func (x *ResendVerifyEmailResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type VerifyOtpRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Exactly one of email / phone_number is required. - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - PhoneNumber string `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` - Otp string `protobuf:"bytes,3,opt,name=otp,proto3" json:"otp,omitempty"` - IsTotp bool `protobuf:"varint,4,opt,name=is_totp,json=isTotp,proto3" json:"is_totp,omitempty"` - State string `protobuf:"bytes,5,opt,name=state,proto3" json:"state,omitempty"` -} - -func (x *VerifyOtpRequest) Reset() { - *x = VerifyOtpRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *VerifyOtpRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VerifyOtpRequest) ProtoMessage() {} - -func (x *VerifyOtpRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[9] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use VerifyOtpRequest.ProtoReflect.Descriptor instead. -func (*VerifyOtpRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{9} -} - -func (x *VerifyOtpRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *VerifyOtpRequest) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *VerifyOtpRequest) GetOtp() string { - if x != nil { - return x.Otp - } - return "" -} - -func (x *VerifyOtpRequest) GetIsTotp() bool { - if x != nil { - return x.IsTotp - } - return false -} - -func (x *VerifyOtpRequest) GetState() string { - if x != nil { - return x.State - } - return "" -} - -type ResendOtpRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - PhoneNumber string `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` - State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` -} - -func (x *ResendOtpRequest) Reset() { - *x = ResendOtpRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ResendOtpRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResendOtpRequest) ProtoMessage() {} - -func (x *ResendOtpRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[10] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResendOtpRequest.ProtoReflect.Descriptor instead. -func (*ResendOtpRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{10} -} - -func (x *ResendOtpRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *ResendOtpRequest) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *ResendOtpRequest) GetState() string { - if x != nil { - return x.State - } - return "" -} - -type ResendOtpResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *ResendOtpResponse) Reset() { - *x = ResendOtpResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ResendOtpResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResendOtpResponse) ProtoMessage() {} - -func (x *ResendOtpResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[11] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResendOtpResponse.ProtoReflect.Descriptor instead. -func (*ResendOtpResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{11} -} - -func (x *ResendOtpResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type ForgotPasswordRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - PhoneNumber string `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` - State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` - RedirectUri string `protobuf:"bytes,4,opt,name=redirect_uri,json=redirectUri,proto3" json:"redirect_uri,omitempty"` -} - -func (x *ForgotPasswordRequest) Reset() { - *x = ForgotPasswordRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ForgotPasswordRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ForgotPasswordRequest) ProtoMessage() {} - -func (x *ForgotPasswordRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[12] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ForgotPasswordRequest.ProtoReflect.Descriptor instead. -func (*ForgotPasswordRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{12} -} - -func (x *ForgotPasswordRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *ForgotPasswordRequest) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *ForgotPasswordRequest) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *ForgotPasswordRequest) GetRedirectUri() string { - if x != nil { - return x.RedirectUri - } - return "" -} - -type ForgotPasswordResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - // For SMS-driven flows the UI may need to render an OTP entry screen. - ShouldShowMobileOtpScreen bool `protobuf:"varint,2,opt,name=should_show_mobile_otp_screen,json=shouldShowMobileOtpScreen,proto3" json:"should_show_mobile_otp_screen,omitempty"` -} - -func (x *ForgotPasswordResponse) Reset() { - *x = ForgotPasswordResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ForgotPasswordResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ForgotPasswordResponse) ProtoMessage() {} - -func (x *ForgotPasswordResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[13] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ForgotPasswordResponse.ProtoReflect.Descriptor instead. -func (*ForgotPasswordResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{13} -} - -func (x *ForgotPasswordResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *ForgotPasswordResponse) GetShouldShowMobileOtpScreen() bool { - if x != nil { - return x.ShouldShowMobileOtpScreen - } - return false -} - -type ResetPasswordRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // For email flows: the token from the reset email. For SMS flows: the OTP. - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - Otp string `protobuf:"bytes,2,opt,name=otp,proto3" json:"otp,omitempty"` - PhoneNumber string `protobuf:"bytes,3,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` - Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` - ConfirmPassword string `protobuf:"bytes,5,opt,name=confirm_password,json=confirmPassword,proto3" json:"confirm_password,omitempty"` -} - -func (x *ResetPasswordRequest) Reset() { - *x = ResetPasswordRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ResetPasswordRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResetPasswordRequest) ProtoMessage() {} - -func (x *ResetPasswordRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[14] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResetPasswordRequest.ProtoReflect.Descriptor instead. -func (*ResetPasswordRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{14} -} - -func (x *ResetPasswordRequest) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -func (x *ResetPasswordRequest) GetOtp() string { - if x != nil { - return x.Otp - } - return "" -} - -func (x *ResetPasswordRequest) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *ResetPasswordRequest) GetPassword() string { - if x != nil { - return x.Password - } - return "" -} - -func (x *ResetPasswordRequest) GetConfirmPassword() string { - if x != nil { - return x.ConfirmPassword - } - return "" -} - -type ResetPasswordResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *ResetPasswordResponse) Reset() { - *x = ResetPasswordResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ResetPasswordResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResetPasswordResponse) ProtoMessage() {} - -func (x *ResetPasswordResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[15] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResetPasswordResponse.ProtoReflect.Descriptor instead. -func (*ResetPasswordResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{15} -} - -func (x *ResetPasswordResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type ProfileRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *ProfileRequest) Reset() { - *x = ProfileRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ProfileRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProfileRequest) ProtoMessage() {} - -func (x *ProfileRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[16] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ProfileRequest.ProtoReflect.Descriptor instead. -func (*ProfileRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{16} -} - -type UpdateProfileRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OldPassword string `protobuf:"bytes,1,opt,name=old_password,json=oldPassword,proto3" json:"old_password,omitempty"` - NewPassword string `protobuf:"bytes,2,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"` - ConfirmNewPassword string `protobuf:"bytes,3,opt,name=confirm_new_password,json=confirmNewPassword,proto3" json:"confirm_new_password,omitempty"` - Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` - GivenName string `protobuf:"bytes,5,opt,name=given_name,json=givenName,proto3" json:"given_name,omitempty"` - FamilyName string `protobuf:"bytes,6,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"` - MiddleName string `protobuf:"bytes,7,opt,name=middle_name,json=middleName,proto3" json:"middle_name,omitempty"` - Nickname string `protobuf:"bytes,8,opt,name=nickname,proto3" json:"nickname,omitempty"` - Gender string `protobuf:"bytes,9,opt,name=gender,proto3" json:"gender,omitempty"` - Birthdate string `protobuf:"bytes,10,opt,name=birthdate,proto3" json:"birthdate,omitempty"` - PhoneNumber string `protobuf:"bytes,11,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` - Picture string `protobuf:"bytes,12,opt,name=picture,proto3" json:"picture,omitempty"` - // optional: absent means "leave MFA unchanged"; present false explicitly - // disables MFA. A non-optional bool would make every partial update send - // false and silently disable MFA. - IsMultiFactorAuthEnabled *bool `protobuf:"varint,13,opt,name=is_multi_factor_auth_enabled,json=isMultiFactorAuthEnabled,proto3,oneof" json:"is_multi_factor_auth_enabled,omitempty"` - AppData *AppData `protobuf:"bytes,14,opt,name=app_data,json=appData,proto3" json:"app_data,omitempty"` -} - -func (x *UpdateProfileRequest) Reset() { - *x = UpdateProfileRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateProfileRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateProfileRequest) ProtoMessage() {} - -func (x *UpdateProfileRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[17] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateProfileRequest.ProtoReflect.Descriptor instead. -func (*UpdateProfileRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{17} -} - -func (x *UpdateProfileRequest) GetOldPassword() string { - if x != nil { - return x.OldPassword - } - return "" -} - -func (x *UpdateProfileRequest) GetNewPassword() string { - if x != nil { - return x.NewPassword - } - return "" -} - -func (x *UpdateProfileRequest) GetConfirmNewPassword() string { - if x != nil { - return x.ConfirmNewPassword - } - return "" -} - -func (x *UpdateProfileRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *UpdateProfileRequest) GetGivenName() string { - if x != nil { - return x.GivenName - } - return "" -} - -func (x *UpdateProfileRequest) GetFamilyName() string { - if x != nil { - return x.FamilyName - } - return "" -} - -func (x *UpdateProfileRequest) GetMiddleName() string { - if x != nil { - return x.MiddleName - } - return "" -} - -func (x *UpdateProfileRequest) GetNickname() string { - if x != nil { - return x.Nickname - } - return "" -} - -func (x *UpdateProfileRequest) GetGender() string { - if x != nil { - return x.Gender - } - return "" -} - -func (x *UpdateProfileRequest) GetBirthdate() string { - if x != nil { - return x.Birthdate - } - return "" -} - -func (x *UpdateProfileRequest) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *UpdateProfileRequest) GetPicture() string { - if x != nil { - return x.Picture - } - return "" -} - -func (x *UpdateProfileRequest) GetIsMultiFactorAuthEnabled() bool { - if x != nil && x.IsMultiFactorAuthEnabled != nil { - return *x.IsMultiFactorAuthEnabled - } - return false -} - -func (x *UpdateProfileRequest) GetAppData() *AppData { - if x != nil { - return x.AppData - } - return nil -} - -type UpdateProfileResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *UpdateProfileResponse) Reset() { - *x = UpdateProfileResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateProfileResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateProfileResponse) ProtoMessage() {} - -func (x *UpdateProfileResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[18] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateProfileResponse.ProtoReflect.Descriptor instead. -func (*UpdateProfileResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{18} -} - -func (x *UpdateProfileResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type DeactivateAccountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *DeactivateAccountRequest) Reset() { - *x = DeactivateAccountRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeactivateAccountRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeactivateAccountRequest) ProtoMessage() {} - -func (x *DeactivateAccountRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[19] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeactivateAccountRequest.ProtoReflect.Descriptor instead. -func (*DeactivateAccountRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{19} -} - -type DeactivateAccountResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *DeactivateAccountResponse) Reset() { - *x = DeactivateAccountResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeactivateAccountResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeactivateAccountResponse) ProtoMessage() {} - -func (x *DeactivateAccountResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[20] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeactivateAccountResponse.ProtoReflect.Descriptor instead. -func (*DeactivateAccountResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{20} -} - -func (x *DeactivateAccountResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type RevokeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RefreshToken string `protobuf:"bytes,1,opt,name=refresh_token,json=refreshToken,proto3" json:"refresh_token,omitempty"` -} - -func (x *RevokeRequest) Reset() { - *x = RevokeRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *RevokeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RevokeRequest) ProtoMessage() {} - -func (x *RevokeRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[21] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RevokeRequest.ProtoReflect.Descriptor instead. -func (*RevokeRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{21} -} - -func (x *RevokeRequest) GetRefreshToken() string { - if x != nil { - return x.RefreshToken - } - return "" -} - -type RevokeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *RevokeResponse) Reset() { - *x = RevokeResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *RevokeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RevokeResponse) ProtoMessage() {} - -func (x *RevokeResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[22] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RevokeResponse.ProtoReflect.Descriptor instead. -func (*RevokeResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{22} -} - -func (x *RevokeResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type SessionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` - Scope []string `protobuf:"bytes,2,rep,name=scope,proto3" json:"scope,omitempty"` - State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` - // Optional fine-grained authorization gate: each (relation, object) is - // checked against the authenticated caller with AND semantics, fail-closed. - // Requires fine-grained authorization enabled (--fga-store). - RequiredRelations []*FgaRelationInput `protobuf:"bytes,4,rep,name=required_relations,json=requiredRelations,proto3" json:"required_relations,omitempty"` -} - -func (x *SessionRequest) Reset() { - *x = SessionRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *SessionRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SessionRequest) ProtoMessage() {} - -func (x *SessionRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[23] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SessionRequest.ProtoReflect.Descriptor instead. -func (*SessionRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{23} -} - -func (x *SessionRequest) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *SessionRequest) GetScope() []string { - if x != nil { - return x.Scope - } - return nil -} - -func (x *SessionRequest) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *SessionRequest) GetRequiredRelations() []*FgaRelationInput { - if x != nil { - return x.RequiredRelations - } - return nil -} - -type ValidateJwtTokenRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TokenType string `protobuf:"bytes,1,opt,name=token_type,json=tokenType,proto3" json:"token_type,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` - Roles []string `protobuf:"bytes,3,rep,name=roles,proto3" json:"roles,omitempty"` - // Optional fine-grained authorization gate (AND semantics, fail-closed). - RequiredRelations []*FgaRelationInput `protobuf:"bytes,4,rep,name=required_relations,json=requiredRelations,proto3" json:"required_relations,omitempty"` -} - -func (x *ValidateJwtTokenRequest) Reset() { - *x = ValidateJwtTokenRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ValidateJwtTokenRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ValidateJwtTokenRequest) ProtoMessage() {} - -func (x *ValidateJwtTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[24] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ValidateJwtTokenRequest.ProtoReflect.Descriptor instead. -func (*ValidateJwtTokenRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{24} -} - -func (x *ValidateJwtTokenRequest) GetTokenType() string { - if x != nil { - return x.TokenType - } - return "" -} - -func (x *ValidateJwtTokenRequest) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -func (x *ValidateJwtTokenRequest) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *ValidateJwtTokenRequest) GetRequiredRelations() []*FgaRelationInput { - if x != nil { - return x.RequiredRelations - } - return nil -} - -type ValidateJwtTokenResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IsValid bool `protobuf:"varint,1,opt,name=is_valid,json=isValid,proto3" json:"is_valid,omitempty"` - // Free-form JWT claims (matches GraphQL ValidateJWTTokenResponse.claims). - Claims *AppData `protobuf:"bytes,2,opt,name=claims,proto3" json:"claims,omitempty"` -} - -func (x *ValidateJwtTokenResponse) Reset() { - *x = ValidateJwtTokenResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ValidateJwtTokenResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ValidateJwtTokenResponse) ProtoMessage() {} - -func (x *ValidateJwtTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[25] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ValidateJwtTokenResponse.ProtoReflect.Descriptor instead. -func (*ValidateJwtTokenResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{25} -} - -func (x *ValidateJwtTokenResponse) GetIsValid() bool { - if x != nil { - return x.IsValid - } - return false -} - -func (x *ValidateJwtTokenResponse) GetClaims() *AppData { - if x != nil { - return x.Claims - } - return nil -} - -type ValidateSessionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Cookie string `protobuf:"bytes,1,opt,name=cookie,proto3" json:"cookie,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` - // Optional fine-grained authorization gate (AND semantics, fail-closed). - RequiredRelations []*FgaRelationInput `protobuf:"bytes,3,rep,name=required_relations,json=requiredRelations,proto3" json:"required_relations,omitempty"` -} - -func (x *ValidateSessionRequest) Reset() { - *x = ValidateSessionRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ValidateSessionRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ValidateSessionRequest) ProtoMessage() {} - -func (x *ValidateSessionRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[26] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ValidateSessionRequest.ProtoReflect.Descriptor instead. -func (*ValidateSessionRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{26} -} - -func (x *ValidateSessionRequest) GetCookie() string { - if x != nil { - return x.Cookie - } - return "" -} - -func (x *ValidateSessionRequest) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *ValidateSessionRequest) GetRequiredRelations() []*FgaRelationInput { - if x != nil { - return x.RequiredRelations - } - return nil -} - -type ValidateSessionResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IsValid bool `protobuf:"varint,1,opt,name=is_valid,json=isValid,proto3" json:"is_valid,omitempty"` - User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` -} - -func (x *ValidateSessionResponse) Reset() { - *x = ValidateSessionResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ValidateSessionResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ValidateSessionResponse) ProtoMessage() {} - -func (x *ValidateSessionResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[27] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ValidateSessionResponse.ProtoReflect.Descriptor instead. -func (*ValidateSessionResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{27} -} - -func (x *ValidateSessionResponse) GetIsValid() bool { - if x != nil { - return x.IsValid - } - return false -} - -func (x *ValidateSessionResponse) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -type MetaRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *MetaRequest) Reset() { - *x = MetaRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *MetaRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MetaRequest) ProtoMessage() {} - -func (x *MetaRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[28] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MetaRequest.ProtoReflect.Descriptor instead. -func (*MetaRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{28} -} - -type CheckPermissionsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The checks to evaluate; at least one, at most 100. - Checks []*PermissionCheckInput `protobuf:"bytes,1,rep,name=checks,proto3" json:"checks,omitempty"` - // Optional explicit subject ("type:id", or a bare id treated as - // "user:"). Honored only for super-admins or when it equals the - // caller's own token subject; anything else is rejected. - User string `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` -} - -func (x *CheckPermissionsRequest) Reset() { - *x = CheckPermissionsRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *CheckPermissionsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CheckPermissionsRequest) ProtoMessage() {} - -func (x *CheckPermissionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[29] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CheckPermissionsRequest.ProtoReflect.Descriptor instead. -func (*CheckPermissionsRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{29} -} - -func (x *CheckPermissionsRequest) GetChecks() []*PermissionCheckInput { - if x != nil { - return x.Checks - } - return nil -} - -func (x *CheckPermissionsRequest) GetUser() string { - if x != nil { - return x.User - } - return "" -} - -type CheckPermissionsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // One result per supplied check, in order. - Results []*PermissionCheckResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` -} - -func (x *CheckPermissionsResponse) Reset() { - *x = CheckPermissionsResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *CheckPermissionsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CheckPermissionsResponse) ProtoMessage() {} - -func (x *CheckPermissionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[30] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CheckPermissionsResponse.ProtoReflect.Descriptor instead. -func (*CheckPermissionsResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{30} -} - -func (x *CheckPermissionsResponse) GetResults() []*PermissionCheckResult { - if x != nil { - return x.Results - } - return nil -} - -type ListPermissionsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Optional relation filter (e.g. "can_view"). - Relation string `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` - // Optional object-type filter (e.g. "document"). - ObjectType string `protobuf:"bytes,2,opt,name=object_type,json=objectType,proto3" json:"object_type,omitempty"` - // Optional explicit subject; same trust rules as CheckPermissionsRequest. - User string `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` -} - -func (x *ListPermissionsRequest) Reset() { - *x = ListPermissionsRequest{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ListPermissionsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListPermissionsRequest) ProtoMessage() {} - -func (x *ListPermissionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[31] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListPermissionsRequest.ProtoReflect.Descriptor instead. -func (*ListPermissionsRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{31} -} - -func (x *ListPermissionsRequest) GetRelation() string { - if x != nil { - return x.Relation - } - return "" -} - -func (x *ListPermissionsRequest) GetObjectType() string { - if x != nil { - return x.ObjectType - } - return "" -} - -func (x *ListPermissionsRequest) GetUser() string { - if x != nil { - return x.User - } - return "" -} - -type ListPermissionsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Distinct fully-qualified object ids the subject can access. - Objects []string `protobuf:"bytes,1,rep,name=objects,proto3" json:"objects,omitempty"` - // The (object, relation) detail — relevant when no relation filter was - // supplied. - Permissions []*Permission `protobuf:"bytes,2,rep,name=permissions,proto3" json:"permissions,omitempty"` - // True when the result was capped (1000 entries) and more permissions - // exist. - Truncated bool `protobuf:"varint,3,opt,name=truncated,proto3" json:"truncated,omitempty"` -} - -func (x *ListPermissionsResponse) Reset() { - *x = ListPermissionsResponse{} - mi := &file_authorizer_v1_authorizer_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ListPermissionsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListPermissionsResponse) ProtoMessage() {} - -func (x *ListPermissionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_authorizer_proto_msgTypes[32] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListPermissionsResponse.ProtoReflect.Descriptor instead. -func (*ListPermissionsResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_authorizer_proto_rawDescGZIP(), []int{32} -} - -func (x *ListPermissionsResponse) GetObjects() []string { - if x != nil { - return x.Objects - } - return nil -} - -func (x *ListPermissionsResponse) GetPermissions() []*Permission { - if x != nil { - return x.Permissions - } - return nil -} - -func (x *ListPermissionsResponse) GetTruncated() bool { - if x != nil { - return x.Truncated - } - return false -} - -var File_authorizer_v1_authorizer_proto protoreflect.FileDescriptor - -var file_authorizer_v1_authorizer_proto_rawDesc = []byte{ - 0x0a, 0x1e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, - 0x1f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xdf, 0x04, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0x18, 0xc0, 0x02, 0x52, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, - 0x02, 0x18, 0x20, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x26, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0a, 0xba, 0x48, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x01, 0x52, 0x08, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x35, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x0a, 0xba, 0x48, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x01, 0x52, 0x0f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x12, 0x3e, 0x0a, 0x1c, 0x69, - 0x73, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x18, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x61, 0x70, 0x70, - 0x44, 0x61, 0x74, 0x61, 0x22, 0xc4, 0x01, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0x18, 0xc0, 0x02, 0x52, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, - 0x72, 0x02, 0x18, 0x20, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x26, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0a, 0xba, 0x48, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x01, 0x52, - 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x4c, - 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2a, 0x0a, 0x0e, - 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x15, 0x4d, 0x61, 0x67, - 0x69, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0x18, 0xc0, 0x02, 0x52, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x22, 0x32, 0x0a, 0x16, 0x4d, 0x61, 0x67, 0x69, 0x63, - 0x4c, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x49, 0x0a, 0x12, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x79, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0x18, 0xc0, 0x02, 0x52, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x12, 0x27, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x35, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x10, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x4f, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, - 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, - 0x05, 0x72, 0x03, 0x18, 0xc0, 0x02, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, - 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x0b, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x03, 0x6f, 0x74, 0x70, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xba, 0x48, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, - 0x10, 0x52, 0x03, 0x6f, 0x74, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, 0x6f, 0x74, - 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x54, 0x6f, 0x74, 0x70, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x74, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x4f, - 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0x18, - 0xc0, 0x02, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0c, 0x70, 0x68, 0x6f, - 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2d, 0x0a, 0x11, 0x52, - 0x65, 0x73, 0x65, 0x6e, 0x64, 0x4f, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x15, 0x46, - 0x6f, 0x72, 0x67, 0x6f, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0x18, 0xc0, 0x02, 0x52, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, - 0x02, 0x18, 0x20, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x22, 0x74, 0x0a, 0x16, 0x46, 0x6f, 0x72, - 0x67, 0x6f, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, - 0x1d, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6d, 0x6f, 0x62, - 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x74, 0x70, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x53, 0x68, 0x6f, 0x77, - 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x4f, 0x74, 0x70, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x22, - 0xc9, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x74, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x74, 0x70, - 0x12, 0x2a, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, - 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x08, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, - 0xba, 0x48, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x01, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x12, 0x35, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x5f, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, - 0xba, 0x48, 0x07, 0x72, 0x05, 0x10, 0x01, 0x18, 0x80, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x31, 0x0a, 0x15, 0x52, - 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x10, - 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0xd4, 0x04, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x6c, 0x64, - 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x0c, - 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0x18, 0x80, 0x01, 0x52, 0x0b, 0x6e, 0x65, - 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x3a, 0x0a, 0x14, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0x18, 0x80, - 0x01, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0x18, 0xc0, 0x02, 0x52, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x76, 0x65, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x69, 0x64, 0x64, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, - 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xba, 0x48, 0x04, 0x72, 0x02, 0x18, 0x20, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x43, - 0x0a, 0x1c, 0x69, 0x73, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x18, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x75, 0x74, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x61, - 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x69, 0x73, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x31, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x65, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x19, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3d, 0x0a, - 0x0d, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, - 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, - 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x2a, 0x0a, 0x0e, - 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, - 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4e, 0x0a, - 0x12, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x52, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x11, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc6, 0x01, - 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x77, 0x74, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, - 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1d, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x12, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x52, 0x11, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x65, 0x0a, 0x18, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x4a, 0x77, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x2e, 0x0a, - 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, - 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x22, 0x9f, 0x01, - 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, - 0x69, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xba, 0x48, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, - 0x4e, 0x0a, 0x12, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x52, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x11, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x5d, 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, - 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x0d, - 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x76, 0x0a, - 0x17, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x0a, 0xba, - 0x48, 0x07, 0x92, 0x01, 0x04, 0x08, 0x01, 0x10, 0x64, 0x52, 0x06, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x5a, 0x0a, 0x18, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x22, 0x69, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x8e, 0x01, 0x0a, - 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x32, 0xe8, 0x12, - 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x12, 0x1c, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, - 0x67, 0x6e, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x92, 0xb5, 0x18, 0x00, 0x98, 0xb5, - 0x18, 0x01, 0xa0, 0xb5, 0x18, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x3a, 0x01, 0x2a, 0x22, - 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x12, 0x63, 0x0a, 0x05, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, - 0x92, 0xb5, 0x18, 0x00, 0x98, 0xb5, 0x18, 0x01, 0xa0, 0xb5, 0x18, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x0e, 0x3a, 0x01, 0x2a, 0x22, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, - 0x12, 0x5d, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x6f, 0x75, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x98, 0xb5, 0x18, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x0c, 0x22, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, - 0x86, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x4c, 0x69, - 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x27, 0x98, 0xb5, 0x18, 0x01, 0xa0, 0xb5, 0x18, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, - 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x6c, 0x69, - 0x6e, 0x6b, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x72, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x45, 0x6d, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x98, 0xb5, 0x18, 0x01, 0xa0, 0xb5, 0x18, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x8e, 0x01, 0x0a, - 0x11, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x45, 0x6d, 0x61, - 0x69, 0x6c, 0x12, 0x27, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x45, - 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, - 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xa0, 0xb5, 0x18, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, - 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x6c, 0x0a, - 0x09, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4f, 0x74, 0x70, 0x12, 0x1f, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x4f, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x98, 0xb5, 0x18, 0x01, 0xa0, 0xb5, - 0x18, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x76, 0x31, - 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x6f, 0x74, 0x70, 0x12, 0x6d, 0x0a, 0x09, 0x52, - 0x65, 0x73, 0x65, 0x6e, 0x64, 0x4f, 0x74, 0x70, 0x12, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x4f, - 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, - 0x4f, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0xa0, 0xb5, 0x18, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x3a, 0x01, 0x2a, 0x22, 0x0e, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x74, 0x70, 0x12, 0x81, 0x01, 0x0a, 0x0e, 0x46, - 0x6f, 0x72, 0x67, 0x6f, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x24, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, - 0x72, 0x67, 0x6f, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x6f, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0xa0, 0xb5, 0x18, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x66, - 0x6f, 0x72, 0x67, 0x6f, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x81, - 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x12, 0x23, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x98, 0xb5, 0x18, - 0x01, 0xa0, 0xb5, 0x18, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x12, 0x58, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1d, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x22, 0x19, 0x92, 0xb5, 0x18, 0x02, 0x08, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, - 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x7d, 0x0a, 0x0d, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x23, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x98, 0xb5, 0x18, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x11, - 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x27, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x92, 0xb5, 0x18, 0x02, 0x18, 0x01, 0x98, 0xb5, 0x18, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x64, - 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x64, 0x0a, 0x06, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x98, 0xb5, 0x18, 0x01, 0xa0, 0xb5, - 0x18, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x3a, 0x01, 0x2a, 0x22, 0x0a, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x12, 0x5d, 0x0a, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x3a, 0x01, 0x2a, 0x22, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x8a, 0x01, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x4a, 0x77, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x4a, 0x77, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x77, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0xa0, 0xb5, - 0x18, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x31, - 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6a, 0x77, 0x74, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x85, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0xa0, 0xb5, 0x18, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x04, 0x4d, - 0x65, 0x74, 0x61, 0x12, 0x1a, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x13, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x65, 0x74, 0x61, 0x22, 0x1a, 0x92, 0xb5, 0x18, 0x02, 0x08, 0x01, 0xa0, 0xb5, 0x18, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, - 0x12, 0x8b, 0x01, 0x0a, 0x10, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x92, 0xb5, 0x18, 0x02, 0x08, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x87, - 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x25, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x25, 0x92, 0xb5, 0x18, 0x02, 0x08, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, - 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0xc5, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0f, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x65, 0x78, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x2d, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x67, - 0x65, 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, - 0x3b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x41, 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_authorizer_v1_authorizer_proto_rawDescOnce sync.Once - file_authorizer_v1_authorizer_proto_rawDescData = file_authorizer_v1_authorizer_proto_rawDesc -) - -func file_authorizer_v1_authorizer_proto_rawDescGZIP() []byte { - file_authorizer_v1_authorizer_proto_rawDescOnce.Do(func() { - file_authorizer_v1_authorizer_proto_rawDescData = protoimpl.X.CompressGZIP(file_authorizer_v1_authorizer_proto_rawDescData) - }) - return file_authorizer_v1_authorizer_proto_rawDescData -} - -var file_authorizer_v1_authorizer_proto_msgTypes = make([]protoimpl.MessageInfo, 33) -var file_authorizer_v1_authorizer_proto_goTypes = []any{ - (*SignupRequest)(nil), // 0: authorizer.v1.SignupRequest - (*LoginRequest)(nil), // 1: authorizer.v1.LoginRequest - (*LogoutRequest)(nil), // 2: authorizer.v1.LogoutRequest - (*LogoutResponse)(nil), // 3: authorizer.v1.LogoutResponse - (*MagicLinkLoginRequest)(nil), // 4: authorizer.v1.MagicLinkLoginRequest - (*MagicLinkLoginResponse)(nil), // 5: authorizer.v1.MagicLinkLoginResponse - (*VerifyEmailRequest)(nil), // 6: authorizer.v1.VerifyEmailRequest - (*ResendVerifyEmailRequest)(nil), // 7: authorizer.v1.ResendVerifyEmailRequest - (*ResendVerifyEmailResponse)(nil), // 8: authorizer.v1.ResendVerifyEmailResponse - (*VerifyOtpRequest)(nil), // 9: authorizer.v1.VerifyOtpRequest - (*ResendOtpRequest)(nil), // 10: authorizer.v1.ResendOtpRequest - (*ResendOtpResponse)(nil), // 11: authorizer.v1.ResendOtpResponse - (*ForgotPasswordRequest)(nil), // 12: authorizer.v1.ForgotPasswordRequest - (*ForgotPasswordResponse)(nil), // 13: authorizer.v1.ForgotPasswordResponse - (*ResetPasswordRequest)(nil), // 14: authorizer.v1.ResetPasswordRequest - (*ResetPasswordResponse)(nil), // 15: authorizer.v1.ResetPasswordResponse - (*ProfileRequest)(nil), // 16: authorizer.v1.ProfileRequest - (*UpdateProfileRequest)(nil), // 17: authorizer.v1.UpdateProfileRequest - (*UpdateProfileResponse)(nil), // 18: authorizer.v1.UpdateProfileResponse - (*DeactivateAccountRequest)(nil), // 19: authorizer.v1.DeactivateAccountRequest - (*DeactivateAccountResponse)(nil), // 20: authorizer.v1.DeactivateAccountResponse - (*RevokeRequest)(nil), // 21: authorizer.v1.RevokeRequest - (*RevokeResponse)(nil), // 22: authorizer.v1.RevokeResponse - (*SessionRequest)(nil), // 23: authorizer.v1.SessionRequest - (*ValidateJwtTokenRequest)(nil), // 24: authorizer.v1.ValidateJwtTokenRequest - (*ValidateJwtTokenResponse)(nil), // 25: authorizer.v1.ValidateJwtTokenResponse - (*ValidateSessionRequest)(nil), // 26: authorizer.v1.ValidateSessionRequest - (*ValidateSessionResponse)(nil), // 27: authorizer.v1.ValidateSessionResponse - (*MetaRequest)(nil), // 28: authorizer.v1.MetaRequest - (*CheckPermissionsRequest)(nil), // 29: authorizer.v1.CheckPermissionsRequest - (*CheckPermissionsResponse)(nil), // 30: authorizer.v1.CheckPermissionsResponse - (*ListPermissionsRequest)(nil), // 31: authorizer.v1.ListPermissionsRequest - (*ListPermissionsResponse)(nil), // 32: authorizer.v1.ListPermissionsResponse - (*AppData)(nil), // 33: authorizer.v1.AppData - (*FgaRelationInput)(nil), // 34: authorizer.v1.FgaRelationInput - (*User)(nil), // 35: authorizer.v1.User - (*PermissionCheckInput)(nil), // 36: authorizer.v1.PermissionCheckInput - (*PermissionCheckResult)(nil), // 37: authorizer.v1.PermissionCheckResult - (*Permission)(nil), // 38: authorizer.v1.Permission - (*AuthResponse)(nil), // 39: authorizer.v1.AuthResponse - (*Meta)(nil), // 40: authorizer.v1.Meta -} -var file_authorizer_v1_authorizer_proto_depIdxs = []int32{ - 33, // 0: authorizer.v1.SignupRequest.app_data:type_name -> authorizer.v1.AppData - 33, // 1: authorizer.v1.UpdateProfileRequest.app_data:type_name -> authorizer.v1.AppData - 34, // 2: authorizer.v1.SessionRequest.required_relations:type_name -> authorizer.v1.FgaRelationInput - 34, // 3: authorizer.v1.ValidateJwtTokenRequest.required_relations:type_name -> authorizer.v1.FgaRelationInput - 33, // 4: authorizer.v1.ValidateJwtTokenResponse.claims:type_name -> authorizer.v1.AppData - 34, // 5: authorizer.v1.ValidateSessionRequest.required_relations:type_name -> authorizer.v1.FgaRelationInput - 35, // 6: authorizer.v1.ValidateSessionResponse.user:type_name -> authorizer.v1.User - 36, // 7: authorizer.v1.CheckPermissionsRequest.checks:type_name -> authorizer.v1.PermissionCheckInput - 37, // 8: authorizer.v1.CheckPermissionsResponse.results:type_name -> authorizer.v1.PermissionCheckResult - 38, // 9: authorizer.v1.ListPermissionsResponse.permissions:type_name -> authorizer.v1.Permission - 0, // 10: authorizer.v1.AuthorizerService.Signup:input_type -> authorizer.v1.SignupRequest - 1, // 11: authorizer.v1.AuthorizerService.Login:input_type -> authorizer.v1.LoginRequest - 2, // 12: authorizer.v1.AuthorizerService.Logout:input_type -> authorizer.v1.LogoutRequest - 4, // 13: authorizer.v1.AuthorizerService.MagicLinkLogin:input_type -> authorizer.v1.MagicLinkLoginRequest - 6, // 14: authorizer.v1.AuthorizerService.VerifyEmail:input_type -> authorizer.v1.VerifyEmailRequest - 7, // 15: authorizer.v1.AuthorizerService.ResendVerifyEmail:input_type -> authorizer.v1.ResendVerifyEmailRequest - 9, // 16: authorizer.v1.AuthorizerService.VerifyOtp:input_type -> authorizer.v1.VerifyOtpRequest - 10, // 17: authorizer.v1.AuthorizerService.ResendOtp:input_type -> authorizer.v1.ResendOtpRequest - 12, // 18: authorizer.v1.AuthorizerService.ForgotPassword:input_type -> authorizer.v1.ForgotPasswordRequest - 14, // 19: authorizer.v1.AuthorizerService.ResetPassword:input_type -> authorizer.v1.ResetPasswordRequest - 16, // 20: authorizer.v1.AuthorizerService.Profile:input_type -> authorizer.v1.ProfileRequest - 17, // 21: authorizer.v1.AuthorizerService.UpdateProfile:input_type -> authorizer.v1.UpdateProfileRequest - 19, // 22: authorizer.v1.AuthorizerService.DeactivateAccount:input_type -> authorizer.v1.DeactivateAccountRequest - 21, // 23: authorizer.v1.AuthorizerService.Revoke:input_type -> authorizer.v1.RevokeRequest - 23, // 24: authorizer.v1.AuthorizerService.Session:input_type -> authorizer.v1.SessionRequest - 24, // 25: authorizer.v1.AuthorizerService.ValidateJwtToken:input_type -> authorizer.v1.ValidateJwtTokenRequest - 26, // 26: authorizer.v1.AuthorizerService.ValidateSession:input_type -> authorizer.v1.ValidateSessionRequest - 28, // 27: authorizer.v1.AuthorizerService.Meta:input_type -> authorizer.v1.MetaRequest - 29, // 28: authorizer.v1.AuthorizerService.CheckPermissions:input_type -> authorizer.v1.CheckPermissionsRequest - 31, // 29: authorizer.v1.AuthorizerService.ListPermissions:input_type -> authorizer.v1.ListPermissionsRequest - 39, // 30: authorizer.v1.AuthorizerService.Signup:output_type -> authorizer.v1.AuthResponse - 39, // 31: authorizer.v1.AuthorizerService.Login:output_type -> authorizer.v1.AuthResponse - 3, // 32: authorizer.v1.AuthorizerService.Logout:output_type -> authorizer.v1.LogoutResponse - 5, // 33: authorizer.v1.AuthorizerService.MagicLinkLogin:output_type -> authorizer.v1.MagicLinkLoginResponse - 39, // 34: authorizer.v1.AuthorizerService.VerifyEmail:output_type -> authorizer.v1.AuthResponse - 8, // 35: authorizer.v1.AuthorizerService.ResendVerifyEmail:output_type -> authorizer.v1.ResendVerifyEmailResponse - 39, // 36: authorizer.v1.AuthorizerService.VerifyOtp:output_type -> authorizer.v1.AuthResponse - 11, // 37: authorizer.v1.AuthorizerService.ResendOtp:output_type -> authorizer.v1.ResendOtpResponse - 13, // 38: authorizer.v1.AuthorizerService.ForgotPassword:output_type -> authorizer.v1.ForgotPasswordResponse - 15, // 39: authorizer.v1.AuthorizerService.ResetPassword:output_type -> authorizer.v1.ResetPasswordResponse - 35, // 40: authorizer.v1.AuthorizerService.Profile:output_type -> authorizer.v1.User - 18, // 41: authorizer.v1.AuthorizerService.UpdateProfile:output_type -> authorizer.v1.UpdateProfileResponse - 20, // 42: authorizer.v1.AuthorizerService.DeactivateAccount:output_type -> authorizer.v1.DeactivateAccountResponse - 22, // 43: authorizer.v1.AuthorizerService.Revoke:output_type -> authorizer.v1.RevokeResponse - 39, // 44: authorizer.v1.AuthorizerService.Session:output_type -> authorizer.v1.AuthResponse - 25, // 45: authorizer.v1.AuthorizerService.ValidateJwtToken:output_type -> authorizer.v1.ValidateJwtTokenResponse - 27, // 46: authorizer.v1.AuthorizerService.ValidateSession:output_type -> authorizer.v1.ValidateSessionResponse - 40, // 47: authorizer.v1.AuthorizerService.Meta:output_type -> authorizer.v1.Meta - 30, // 48: authorizer.v1.AuthorizerService.CheckPermissions:output_type -> authorizer.v1.CheckPermissionsResponse - 32, // 49: authorizer.v1.AuthorizerService.ListPermissions:output_type -> authorizer.v1.ListPermissionsResponse - 30, // [30:50] is the sub-list for method output_type - 10, // [10:30] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name -} - -func init() { file_authorizer_v1_authorizer_proto_init() } -func file_authorizer_v1_authorizer_proto_init() { - if File_authorizer_v1_authorizer_proto != nil { - return - } - file_authorizer_v1_annotations_proto_init() - file_authorizer_v1_common_proto_init() - file_authorizer_v1_types_proto_init() - file_authorizer_v1_authorizer_proto_msgTypes[17].OneofWrappers = []any{} - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_authorizer_v1_authorizer_proto_rawDesc, - NumEnums: 0, - NumMessages: 33, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_authorizer_v1_authorizer_proto_goTypes, - DependencyIndexes: file_authorizer_v1_authorizer_proto_depIdxs, - MessageInfos: file_authorizer_v1_authorizer_proto_msgTypes, - }.Build() - File_authorizer_v1_authorizer_proto = out.File - file_authorizer_v1_authorizer_proto_rawDesc = nil - file_authorizer_v1_authorizer_proto_goTypes = nil - file_authorizer_v1_authorizer_proto_depIdxs = nil -} diff --git a/with-grpc/gen/authorizer/v1/authorizer_grpc.pb.go b/with-grpc/gen/authorizer/v1/authorizer_grpc.pb.go deleted file mode 100644 index 6ae658f..0000000 --- a/with-grpc/gen/authorizer/v1/authorizer_grpc.pb.go +++ /dev/null @@ -1,918 +0,0 @@ -// AuthorizerService is the single gRPC service that exposes Authorizer's -// public API. Method names match the GraphQL operation names 1:1 -// (snake_case in GraphQL → PascalCase in proto): Signup, Login, -// MagicLinkLogin, VerifyEmail, ResendVerifyEmail, ForgotPassword, -// ResetPassword, VerifyOtp, ResendOtp, UpdateProfile, DeactivateAccount, -// Revoke, Meta, Session, Profile, ValidateJwtToken, ValidateSession, -// CheckPermissions, ListPermissions, Logout. -// -// Why one service: clients consume a single typed client per language, -// discovery is trivial, and the surface mirrors the GraphQL one users -// already know. The trade-off is that we lose resource-oriented evolution -// (no `List/Get/Create` symmetry per resource) — acceptable for an auth -// surface where most operations are stateless verbs anyway. -// -// REST mapping follows a simple rule: -// - GET /v1/{method} when the request body is empty (Meta, Profile, -// Logout) -// - POST /v1/{method} otherwise - -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc (unknown) -// source: authorizer/v1/authorizer.proto - -package authorizerv1 - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 - -const ( - AuthorizerService_Signup_FullMethodName = "/authorizer.v1.AuthorizerService/Signup" - AuthorizerService_Login_FullMethodName = "/authorizer.v1.AuthorizerService/Login" - AuthorizerService_Logout_FullMethodName = "/authorizer.v1.AuthorizerService/Logout" - AuthorizerService_MagicLinkLogin_FullMethodName = "/authorizer.v1.AuthorizerService/MagicLinkLogin" - AuthorizerService_VerifyEmail_FullMethodName = "/authorizer.v1.AuthorizerService/VerifyEmail" - AuthorizerService_ResendVerifyEmail_FullMethodName = "/authorizer.v1.AuthorizerService/ResendVerifyEmail" - AuthorizerService_VerifyOtp_FullMethodName = "/authorizer.v1.AuthorizerService/VerifyOtp" - AuthorizerService_ResendOtp_FullMethodName = "/authorizer.v1.AuthorizerService/ResendOtp" - AuthorizerService_ForgotPassword_FullMethodName = "/authorizer.v1.AuthorizerService/ForgotPassword" - AuthorizerService_ResetPassword_FullMethodName = "/authorizer.v1.AuthorizerService/ResetPassword" - AuthorizerService_Profile_FullMethodName = "/authorizer.v1.AuthorizerService/Profile" - AuthorizerService_UpdateProfile_FullMethodName = "/authorizer.v1.AuthorizerService/UpdateProfile" - AuthorizerService_DeactivateAccount_FullMethodName = "/authorizer.v1.AuthorizerService/DeactivateAccount" - AuthorizerService_Revoke_FullMethodName = "/authorizer.v1.AuthorizerService/Revoke" - AuthorizerService_Session_FullMethodName = "/authorizer.v1.AuthorizerService/Session" - AuthorizerService_ValidateJwtToken_FullMethodName = "/authorizer.v1.AuthorizerService/ValidateJwtToken" - AuthorizerService_ValidateSession_FullMethodName = "/authorizer.v1.AuthorizerService/ValidateSession" - AuthorizerService_Meta_FullMethodName = "/authorizer.v1.AuthorizerService/Meta" - AuthorizerService_CheckPermissions_FullMethodName = "/authorizer.v1.AuthorizerService/CheckPermissions" - AuthorizerService_ListPermissions_FullMethodName = "/authorizer.v1.AuthorizerService/ListPermissions" -) - -// AuthorizerServiceClient is the client API for AuthorizerService 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. -type AuthorizerServiceClient interface { - // Signup registers a new user. Public; requires sign-up enabled in config. - // Returns AuthResponse with tokens + (browser callers) Set-Cookie headers. - Signup(ctx context.Context, in *SignupRequest, opts ...grpc.CallOption) (*AuthResponse, error) - // Login authenticates with email/phone + password. - Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*AuthResponse, error) - // Logout ends the caller's current session. POST, not GET: logout mutates - // server state (clears the session) and is audit-logged, so it must not be - // a "safe" method per RFC 9110 §9.2.1 — GET would also expose it to CSRF. - Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error) - // MagicLinkLogin dispatches a passwordless email link. The clicked link - // hits the existing /verify_email browser handler. - MagicLinkLogin(ctx context.Context, in *MagicLinkLoginRequest, opts ...grpc.CallOption) (*MagicLinkLoginResponse, error) - VerifyEmail(ctx context.Context, in *VerifyEmailRequest, opts ...grpc.CallOption) (*AuthResponse, error) - ResendVerifyEmail(ctx context.Context, in *ResendVerifyEmailRequest, opts ...grpc.CallOption) (*ResendVerifyEmailResponse, error) - VerifyOtp(ctx context.Context, in *VerifyOtpRequest, opts ...grpc.CallOption) (*AuthResponse, error) - ResendOtp(ctx context.Context, in *ResendOtpRequest, opts ...grpc.CallOption) (*ResendOtpResponse, error) - ForgotPassword(ctx context.Context, in *ForgotPasswordRequest, opts ...grpc.CallOption) (*ForgotPasswordResponse, error) - ResetPassword(ctx context.Context, in *ResetPasswordRequest, opts ...grpc.CallOption) (*ResetPasswordResponse, error) - // Profile returns the authenticated user. - Profile(ctx context.Context, in *ProfileRequest, opts ...grpc.CallOption) (*User, error) - UpdateProfile(ctx context.Context, in *UpdateProfileRequest, opts ...grpc.CallOption) (*UpdateProfileResponse, error) - // DeactivateAccount soft-deletes the caller's account and revokes all - // refresh tokens as a side effect. OAuth has no concept of account - // deactivation; this is the typed equivalent of SCIM PATCH active=false. - DeactivateAccount(ctx context.Context, in *DeactivateAccountRequest, opts ...grpc.CallOption) (*DeactivateAccountResponse, error) - // Revoke invalidates a refresh token. Typed mirror of RFC 7009. - Revoke(ctx context.Context, in *RevokeRequest, opts ...grpc.CallOption) (*RevokeResponse, error) - // Session returns the AuthResponse bound to the caller's session cookie only. - // NOT exposed as an MCP tool — SessionResponse carries access_token, - // refresh_token, id_token, authenticator_secret, and recovery codes, - // none of which should land in an LLM transcript. (Security audit C1.) - Session(ctx context.Context, in *SessionRequest, opts ...grpc.CallOption) (*AuthResponse, error) - ValidateJwtToken(ctx context.Context, in *ValidateJwtTokenRequest, opts ...grpc.CallOption) (*ValidateJwtTokenResponse, error) - ValidateSession(ctx context.Context, in *ValidateSessionRequest, opts ...grpc.CallOption) (*ValidateSessionResponse, error) - // Meta returns server feature flags. No auth required. - Meta(ctx context.Context, in *MetaRequest, opts ...grpc.CallOption) (*Meta, error) - // CheckPermissions evaluates one or more fine-grained permission checks - // ("does the subject have on ?") in a single call and - // returns one result per check, in order. The subject defaults to the - // authenticated caller; an explicit `user` is honored only for super-admins - // or when it equals the caller's own subject. Fail-closed. - CheckPermissions(ctx context.Context, in *CheckPermissionsRequest, opts ...grpc.CallOption) (*CheckPermissionsResponse, error) - // ListPermissions enumerates what the subject can access. With both - // `relation` and `object_type` set it answers "which s can I - // ?"; either or both filters may be omitted to enumerate every - // matching (type, relation) pair of the active model. Results are capped; - // `truncated` reports when more permissions exist. Subject resolution - // follows the same rules as CheckPermissions. - ListPermissions(ctx context.Context, in *ListPermissionsRequest, opts ...grpc.CallOption) (*ListPermissionsResponse, error) -} - -type authorizerServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewAuthorizerServiceClient(cc grpc.ClientConnInterface) AuthorizerServiceClient { - return &authorizerServiceClient{cc} -} - -func (c *authorizerServiceClient) Signup(ctx context.Context, in *SignupRequest, opts ...grpc.CallOption) (*AuthResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AuthResponse) - err := c.cc.Invoke(ctx, AuthorizerService_Signup_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*AuthResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AuthResponse) - err := c.cc.Invoke(ctx, AuthorizerService_Login_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(LogoutResponse) - err := c.cc.Invoke(ctx, AuthorizerService_Logout_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) MagicLinkLogin(ctx context.Context, in *MagicLinkLoginRequest, opts ...grpc.CallOption) (*MagicLinkLoginResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(MagicLinkLoginResponse) - err := c.cc.Invoke(ctx, AuthorizerService_MagicLinkLogin_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) VerifyEmail(ctx context.Context, in *VerifyEmailRequest, opts ...grpc.CallOption) (*AuthResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AuthResponse) - err := c.cc.Invoke(ctx, AuthorizerService_VerifyEmail_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) ResendVerifyEmail(ctx context.Context, in *ResendVerifyEmailRequest, opts ...grpc.CallOption) (*ResendVerifyEmailResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ResendVerifyEmailResponse) - err := c.cc.Invoke(ctx, AuthorizerService_ResendVerifyEmail_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) VerifyOtp(ctx context.Context, in *VerifyOtpRequest, opts ...grpc.CallOption) (*AuthResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AuthResponse) - err := c.cc.Invoke(ctx, AuthorizerService_VerifyOtp_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) ResendOtp(ctx context.Context, in *ResendOtpRequest, opts ...grpc.CallOption) (*ResendOtpResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ResendOtpResponse) - err := c.cc.Invoke(ctx, AuthorizerService_ResendOtp_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) ForgotPassword(ctx context.Context, in *ForgotPasswordRequest, opts ...grpc.CallOption) (*ForgotPasswordResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ForgotPasswordResponse) - err := c.cc.Invoke(ctx, AuthorizerService_ForgotPassword_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) ResetPassword(ctx context.Context, in *ResetPasswordRequest, opts ...grpc.CallOption) (*ResetPasswordResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ResetPasswordResponse) - err := c.cc.Invoke(ctx, AuthorizerService_ResetPassword_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) Profile(ctx context.Context, in *ProfileRequest, opts ...grpc.CallOption) (*User, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(User) - err := c.cc.Invoke(ctx, AuthorizerService_Profile_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) UpdateProfile(ctx context.Context, in *UpdateProfileRequest, opts ...grpc.CallOption) (*UpdateProfileResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UpdateProfileResponse) - err := c.cc.Invoke(ctx, AuthorizerService_UpdateProfile_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) DeactivateAccount(ctx context.Context, in *DeactivateAccountRequest, opts ...grpc.CallOption) (*DeactivateAccountResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(DeactivateAccountResponse) - err := c.cc.Invoke(ctx, AuthorizerService_DeactivateAccount_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) Revoke(ctx context.Context, in *RevokeRequest, opts ...grpc.CallOption) (*RevokeResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(RevokeResponse) - err := c.cc.Invoke(ctx, AuthorizerService_Revoke_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) Session(ctx context.Context, in *SessionRequest, opts ...grpc.CallOption) (*AuthResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(AuthResponse) - err := c.cc.Invoke(ctx, AuthorizerService_Session_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) ValidateJwtToken(ctx context.Context, in *ValidateJwtTokenRequest, opts ...grpc.CallOption) (*ValidateJwtTokenResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ValidateJwtTokenResponse) - err := c.cc.Invoke(ctx, AuthorizerService_ValidateJwtToken_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) ValidateSession(ctx context.Context, in *ValidateSessionRequest, opts ...grpc.CallOption) (*ValidateSessionResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ValidateSessionResponse) - err := c.cc.Invoke(ctx, AuthorizerService_ValidateSession_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) Meta(ctx context.Context, in *MetaRequest, opts ...grpc.CallOption) (*Meta, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(Meta) - err := c.cc.Invoke(ctx, AuthorizerService_Meta_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) CheckPermissions(ctx context.Context, in *CheckPermissionsRequest, opts ...grpc.CallOption) (*CheckPermissionsResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(CheckPermissionsResponse) - err := c.cc.Invoke(ctx, AuthorizerService_CheckPermissions_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *authorizerServiceClient) ListPermissions(ctx context.Context, in *ListPermissionsRequest, opts ...grpc.CallOption) (*ListPermissionsResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ListPermissionsResponse) - err := c.cc.Invoke(ctx, AuthorizerService_ListPermissions_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// AuthorizerServiceServer is the server API for AuthorizerService service. -// All implementations should embed UnimplementedAuthorizerServiceServer -// for forward compatibility. -type AuthorizerServiceServer interface { - // Signup registers a new user. Public; requires sign-up enabled in config. - // Returns AuthResponse with tokens + (browser callers) Set-Cookie headers. - Signup(context.Context, *SignupRequest) (*AuthResponse, error) - // Login authenticates with email/phone + password. - Login(context.Context, *LoginRequest) (*AuthResponse, error) - // Logout ends the caller's current session. POST, not GET: logout mutates - // server state (clears the session) and is audit-logged, so it must not be - // a "safe" method per RFC 9110 §9.2.1 — GET would also expose it to CSRF. - Logout(context.Context, *LogoutRequest) (*LogoutResponse, error) - // MagicLinkLogin dispatches a passwordless email link. The clicked link - // hits the existing /verify_email browser handler. - MagicLinkLogin(context.Context, *MagicLinkLoginRequest) (*MagicLinkLoginResponse, error) - VerifyEmail(context.Context, *VerifyEmailRequest) (*AuthResponse, error) - ResendVerifyEmail(context.Context, *ResendVerifyEmailRequest) (*ResendVerifyEmailResponse, error) - VerifyOtp(context.Context, *VerifyOtpRequest) (*AuthResponse, error) - ResendOtp(context.Context, *ResendOtpRequest) (*ResendOtpResponse, error) - ForgotPassword(context.Context, *ForgotPasswordRequest) (*ForgotPasswordResponse, error) - ResetPassword(context.Context, *ResetPasswordRequest) (*ResetPasswordResponse, error) - // Profile returns the authenticated user. - Profile(context.Context, *ProfileRequest) (*User, error) - UpdateProfile(context.Context, *UpdateProfileRequest) (*UpdateProfileResponse, error) - // DeactivateAccount soft-deletes the caller's account and revokes all - // refresh tokens as a side effect. OAuth has no concept of account - // deactivation; this is the typed equivalent of SCIM PATCH active=false. - DeactivateAccount(context.Context, *DeactivateAccountRequest) (*DeactivateAccountResponse, error) - // Revoke invalidates a refresh token. Typed mirror of RFC 7009. - Revoke(context.Context, *RevokeRequest) (*RevokeResponse, error) - // Session returns the AuthResponse bound to the caller's session cookie only. - // NOT exposed as an MCP tool — SessionResponse carries access_token, - // refresh_token, id_token, authenticator_secret, and recovery codes, - // none of which should land in an LLM transcript. (Security audit C1.) - Session(context.Context, *SessionRequest) (*AuthResponse, error) - ValidateJwtToken(context.Context, *ValidateJwtTokenRequest) (*ValidateJwtTokenResponse, error) - ValidateSession(context.Context, *ValidateSessionRequest) (*ValidateSessionResponse, error) - // Meta returns server feature flags. No auth required. - Meta(context.Context, *MetaRequest) (*Meta, error) - // CheckPermissions evaluates one or more fine-grained permission checks - // ("does the subject have on ?") in a single call and - // returns one result per check, in order. The subject defaults to the - // authenticated caller; an explicit `user` is honored only for super-admins - // or when it equals the caller's own subject. Fail-closed. - CheckPermissions(context.Context, *CheckPermissionsRequest) (*CheckPermissionsResponse, error) - // ListPermissions enumerates what the subject can access. With both - // `relation` and `object_type` set it answers "which s can I - // ?"; either or both filters may be omitted to enumerate every - // matching (type, relation) pair of the active model. Results are capped; - // `truncated` reports when more permissions exist. Subject resolution - // follows the same rules as CheckPermissions. - ListPermissions(context.Context, *ListPermissionsRequest) (*ListPermissionsResponse, error) -} - -// UnimplementedAuthorizerServiceServer should 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. -type UnimplementedAuthorizerServiceServer struct{} - -func (UnimplementedAuthorizerServiceServer) Signup(context.Context, *SignupRequest) (*AuthResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Signup not implemented") -} -func (UnimplementedAuthorizerServiceServer) Login(context.Context, *LoginRequest) (*AuthResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Login not implemented") -} -func (UnimplementedAuthorizerServiceServer) Logout(context.Context, *LogoutRequest) (*LogoutResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Logout not implemented") -} -func (UnimplementedAuthorizerServiceServer) MagicLinkLogin(context.Context, *MagicLinkLoginRequest) (*MagicLinkLoginResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method MagicLinkLogin not implemented") -} -func (UnimplementedAuthorizerServiceServer) VerifyEmail(context.Context, *VerifyEmailRequest) (*AuthResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method VerifyEmail not implemented") -} -func (UnimplementedAuthorizerServiceServer) ResendVerifyEmail(context.Context, *ResendVerifyEmailRequest) (*ResendVerifyEmailResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResendVerifyEmail not implemented") -} -func (UnimplementedAuthorizerServiceServer) VerifyOtp(context.Context, *VerifyOtpRequest) (*AuthResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method VerifyOtp not implemented") -} -func (UnimplementedAuthorizerServiceServer) ResendOtp(context.Context, *ResendOtpRequest) (*ResendOtpResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResendOtp not implemented") -} -func (UnimplementedAuthorizerServiceServer) ForgotPassword(context.Context, *ForgotPasswordRequest) (*ForgotPasswordResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ForgotPassword not implemented") -} -func (UnimplementedAuthorizerServiceServer) ResetPassword(context.Context, *ResetPasswordRequest) (*ResetPasswordResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResetPassword not implemented") -} -func (UnimplementedAuthorizerServiceServer) Profile(context.Context, *ProfileRequest) (*User, error) { - return nil, status.Errorf(codes.Unimplemented, "method Profile not implemented") -} -func (UnimplementedAuthorizerServiceServer) UpdateProfile(context.Context, *UpdateProfileRequest) (*UpdateProfileResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateProfile not implemented") -} -func (UnimplementedAuthorizerServiceServer) DeactivateAccount(context.Context, *DeactivateAccountRequest) (*DeactivateAccountResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeactivateAccount not implemented") -} -func (UnimplementedAuthorizerServiceServer) Revoke(context.Context, *RevokeRequest) (*RevokeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Revoke not implemented") -} -func (UnimplementedAuthorizerServiceServer) Session(context.Context, *SessionRequest) (*AuthResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Session not implemented") -} -func (UnimplementedAuthorizerServiceServer) ValidateJwtToken(context.Context, *ValidateJwtTokenRequest) (*ValidateJwtTokenResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ValidateJwtToken not implemented") -} -func (UnimplementedAuthorizerServiceServer) ValidateSession(context.Context, *ValidateSessionRequest) (*ValidateSessionResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ValidateSession not implemented") -} -func (UnimplementedAuthorizerServiceServer) Meta(context.Context, *MetaRequest) (*Meta, error) { - return nil, status.Errorf(codes.Unimplemented, "method Meta not implemented") -} -func (UnimplementedAuthorizerServiceServer) CheckPermissions(context.Context, *CheckPermissionsRequest) (*CheckPermissionsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CheckPermissions not implemented") -} -func (UnimplementedAuthorizerServiceServer) ListPermissions(context.Context, *ListPermissionsRequest) (*ListPermissionsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPermissions not implemented") -} -func (UnimplementedAuthorizerServiceServer) testEmbeddedByValue() {} - -// UnsafeAuthorizerServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to AuthorizerServiceServer will -// result in compilation errors. -type UnsafeAuthorizerServiceServer interface { - mustEmbedUnimplementedAuthorizerServiceServer() -} - -func RegisterAuthorizerServiceServer(s grpc.ServiceRegistrar, srv AuthorizerServiceServer) { - // If the following call pancis, it indicates UnimplementedAuthorizerServiceServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } - s.RegisterService(&AuthorizerService_ServiceDesc, srv) -} - -func _AuthorizerService_Signup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SignupRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).Signup(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_Signup_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).Signup(ctx, req.(*SignupRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_Login_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(LoginRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).Login(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_Login_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).Login(ctx, req.(*LoginRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_Logout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(LogoutRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).Logout(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_Logout_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).Logout(ctx, req.(*LogoutRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_MagicLinkLogin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MagicLinkLoginRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).MagicLinkLogin(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_MagicLinkLogin_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).MagicLinkLogin(ctx, req.(*MagicLinkLoginRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_VerifyEmail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(VerifyEmailRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).VerifyEmail(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_VerifyEmail_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).VerifyEmail(ctx, req.(*VerifyEmailRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_ResendVerifyEmail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResendVerifyEmailRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).ResendVerifyEmail(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_ResendVerifyEmail_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).ResendVerifyEmail(ctx, req.(*ResendVerifyEmailRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_VerifyOtp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(VerifyOtpRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).VerifyOtp(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_VerifyOtp_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).VerifyOtp(ctx, req.(*VerifyOtpRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_ResendOtp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResendOtpRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).ResendOtp(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_ResendOtp_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).ResendOtp(ctx, req.(*ResendOtpRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_ForgotPassword_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ForgotPasswordRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).ForgotPassword(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_ForgotPassword_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).ForgotPassword(ctx, req.(*ForgotPasswordRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_ResetPassword_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResetPasswordRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).ResetPassword(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_ResetPassword_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).ResetPassword(ctx, req.(*ResetPasswordRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_Profile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ProfileRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).Profile(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_Profile_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).Profile(ctx, req.(*ProfileRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_UpdateProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateProfileRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).UpdateProfile(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_UpdateProfile_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).UpdateProfile(ctx, req.(*UpdateProfileRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_DeactivateAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeactivateAccountRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).DeactivateAccount(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_DeactivateAccount_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).DeactivateAccount(ctx, req.(*DeactivateAccountRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_Revoke_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RevokeRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).Revoke(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_Revoke_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).Revoke(ctx, req.(*RevokeRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_Session_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SessionRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).Session(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_Session_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).Session(ctx, req.(*SessionRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_ValidateJwtToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ValidateJwtTokenRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).ValidateJwtToken(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_ValidateJwtToken_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).ValidateJwtToken(ctx, req.(*ValidateJwtTokenRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_ValidateSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ValidateSessionRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).ValidateSession(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_ValidateSession_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).ValidateSession(ctx, req.(*ValidateSessionRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_Meta_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MetaRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).Meta(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_Meta_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).Meta(ctx, req.(*MetaRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_CheckPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CheckPermissionsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).CheckPermissions(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_CheckPermissions_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).CheckPermissions(ctx, req.(*CheckPermissionsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AuthorizerService_ListPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListPermissionsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthorizerServiceServer).ListPermissions(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AuthorizerService_ListPermissions_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthorizerServiceServer).ListPermissions(ctx, req.(*ListPermissionsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// AuthorizerService_ServiceDesc is the grpc.ServiceDesc for AuthorizerService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var AuthorizerService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "authorizer.v1.AuthorizerService", - HandlerType: (*AuthorizerServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Signup", - Handler: _AuthorizerService_Signup_Handler, - }, - { - MethodName: "Login", - Handler: _AuthorizerService_Login_Handler, - }, - { - MethodName: "Logout", - Handler: _AuthorizerService_Logout_Handler, - }, - { - MethodName: "MagicLinkLogin", - Handler: _AuthorizerService_MagicLinkLogin_Handler, - }, - { - MethodName: "VerifyEmail", - Handler: _AuthorizerService_VerifyEmail_Handler, - }, - { - MethodName: "ResendVerifyEmail", - Handler: _AuthorizerService_ResendVerifyEmail_Handler, - }, - { - MethodName: "VerifyOtp", - Handler: _AuthorizerService_VerifyOtp_Handler, - }, - { - MethodName: "ResendOtp", - Handler: _AuthorizerService_ResendOtp_Handler, - }, - { - MethodName: "ForgotPassword", - Handler: _AuthorizerService_ForgotPassword_Handler, - }, - { - MethodName: "ResetPassword", - Handler: _AuthorizerService_ResetPassword_Handler, - }, - { - MethodName: "Profile", - Handler: _AuthorizerService_Profile_Handler, - }, - { - MethodName: "UpdateProfile", - Handler: _AuthorizerService_UpdateProfile_Handler, - }, - { - MethodName: "DeactivateAccount", - Handler: _AuthorizerService_DeactivateAccount_Handler, - }, - { - MethodName: "Revoke", - Handler: _AuthorizerService_Revoke_Handler, - }, - { - MethodName: "Session", - Handler: _AuthorizerService_Session_Handler, - }, - { - MethodName: "ValidateJwtToken", - Handler: _AuthorizerService_ValidateJwtToken_Handler, - }, - { - MethodName: "ValidateSession", - Handler: _AuthorizerService_ValidateSession_Handler, - }, - { - MethodName: "Meta", - Handler: _AuthorizerService_Meta_Handler, - }, - { - MethodName: "CheckPermissions", - Handler: _AuthorizerService_CheckPermissions_Handler, - }, - { - MethodName: "ListPermissions", - Handler: _AuthorizerService_ListPermissions_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "authorizer/v1/authorizer.proto", -} diff --git a/with-grpc/gen/authorizer/v1/common.pb.go b/with-grpc/gen/authorizer/v1/common.pb.go deleted file mode 100644 index 39be81b..0000000 --- a/with-grpc/gen/authorizer/v1/common.pb.go +++ /dev/null @@ -1,156 +0,0 @@ -// proto/authorizer/v1/common.proto -// -// Shared scalar-ish types used across Authorizer services. -// -// Kept intentionally tiny: only types that don't naturally belong to a single -// resource service live here. Add a new entry only when at least two services -// share it. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.2 -// protoc (unknown) -// source: authorizer/v1/common.proto - -package authorizerv1 - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - structpb "google.golang.org/protobuf/types/known/structpb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// AppData is a free-form key/value bag stored against a user. Mirrors the -// GraphQL `Map` scalar. Values are JSON-typed (string, number, bool, null, -// nested object, nested array) to match what the existing storage layer -// accepts. -type AppData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Value *structpb.Struct `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *AppData) Reset() { - *x = AppData{} - mi := &file_authorizer_v1_common_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AppData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AppData) ProtoMessage() {} - -func (x *AppData) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_common_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AppData.ProtoReflect.Descriptor instead. -func (*AppData) Descriptor() ([]byte, []int) { - return file_authorizer_v1_common_proto_rawDescGZIP(), []int{0} -} - -func (x *AppData) GetValue() *structpb.Struct { - if x != nil { - return x.Value - } - return nil -} - -var File_authorizer_v1_common_proto protoreflect.FileDescriptor - -var file_authorizer_v1_common_proto_rawDesc = []byte{ - 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x38, 0x0a, 0x07, 0x41, 0x70, 0x70, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0xc1, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x64, - 0x65, 0x76, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x77, 0x69, 0x74, 0x68, - 0x2d, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_authorizer_v1_common_proto_rawDescOnce sync.Once - file_authorizer_v1_common_proto_rawDescData = file_authorizer_v1_common_proto_rawDesc -) - -func file_authorizer_v1_common_proto_rawDescGZIP() []byte { - file_authorizer_v1_common_proto_rawDescOnce.Do(func() { - file_authorizer_v1_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_authorizer_v1_common_proto_rawDescData) - }) - return file_authorizer_v1_common_proto_rawDescData -} - -var file_authorizer_v1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_authorizer_v1_common_proto_goTypes = []any{ - (*AppData)(nil), // 0: authorizer.v1.AppData - (*structpb.Struct)(nil), // 1: google.protobuf.Struct -} -var file_authorizer_v1_common_proto_depIdxs = []int32{ - 1, // 0: authorizer.v1.AppData.value:type_name -> google.protobuf.Struct - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name -} - -func init() { file_authorizer_v1_common_proto_init() } -func file_authorizer_v1_common_proto_init() { - if File_authorizer_v1_common_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_authorizer_v1_common_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_authorizer_v1_common_proto_goTypes, - DependencyIndexes: file_authorizer_v1_common_proto_depIdxs, - MessageInfos: file_authorizer_v1_common_proto_msgTypes, - }.Build() - File_authorizer_v1_common_proto = out.File - file_authorizer_v1_common_proto_rawDesc = nil - file_authorizer_v1_common_proto_goTypes = nil - file_authorizer_v1_common_proto_depIdxs = nil -} diff --git a/with-grpc/gen/authorizer/v1/errors.pb.go b/with-grpc/gen/authorizer/v1/errors.pb.go deleted file mode 100644 index 0457333..0000000 --- a/with-grpc/gen/authorizer/v1/errors.pb.go +++ /dev/null @@ -1,216 +0,0 @@ -// proto/authorizer/v1/errors.proto -// -// Domain-specific error reasons attached to google.rpc.Status via ErrorInfo. -// -// Wire shape: handlers return standard gRPC status codes (e.g. -// PERMISSION_DENIED, INVALID_ARGUMENT) and attach an ErrorInfo detail whose -// `reason` field is one of the enum values below. The gateway surfaces the -// same ErrorInfo in the REST response body. Clients should branch on the -// enum, not on the human-readable message. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.2 -// protoc (unknown) -// source: authorizer/v1/errors.proto - -package authorizerv1 - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type ErrorReason int32 - -const ( - ErrorReason_ERROR_REASON_UNSPECIFIED ErrorReason = 0 - // Authentication failed (bad credentials, expired token, missing cookie). - // Maps to gRPC UNAUTHENTICATED / HTTP 401. - ErrorReason_ERROR_REASON_INVALID_CREDENTIALS ErrorReason = 1 - // Caller is authenticated but lacks the required permission. - // Maps to PERMISSION_DENIED / HTTP 403. - ErrorReason_ERROR_REASON_PERMISSION_DENIED ErrorReason = 2 - // The targeted resource does not exist. NOT_FOUND / 404. - ErrorReason_ERROR_REASON_NOT_FOUND ErrorReason = 3 - // A unique constraint was violated (e.g. email already registered). - // ALREADY_EXISTS / 409. - ErrorReason_ERROR_REASON_ALREADY_EXISTS ErrorReason = 4 - // Request validation failed beyond what protovalidate caught - // (cross-field, business-rule). INVALID_ARGUMENT / 400. - ErrorReason_ERROR_REASON_INVALID_REQUEST ErrorReason = 5 - // A required identity-verification step has not been completed - // (email not verified, phone not verified, MFA required). FAILED_PRECONDITION / 412. - ErrorReason_ERROR_REASON_VERIFICATION_REQUIRED ErrorReason = 6 - // The current configuration disables the requested operation - // (sign-up disabled, magic-link login disabled, etc.). FAILED_PRECONDITION / 412. - ErrorReason_ERROR_REASON_OPERATION_DISABLED ErrorReason = 7 - // Caller exceeded the configured rate limit. RESOURCE_EXHAUSTED / 429. - ErrorReason_ERROR_REASON_RATE_LIMITED ErrorReason = 8 - // A verification token (email, password reset, magic link, OTP) is expired - // or has already been consumed. FAILED_PRECONDITION / 412. - ErrorReason_ERROR_REASON_TOKEN_EXPIRED ErrorReason = 9 - // The account is deactivated or its access has been revoked by an admin. - // FAILED_PRECONDITION / 412. - ErrorReason_ERROR_REASON_ACCOUNT_DEACTIVATED ErrorReason = 10 -) - -// Enum value maps for ErrorReason. -var ( - ErrorReason_name = map[int32]string{ - 0: "ERROR_REASON_UNSPECIFIED", - 1: "ERROR_REASON_INVALID_CREDENTIALS", - 2: "ERROR_REASON_PERMISSION_DENIED", - 3: "ERROR_REASON_NOT_FOUND", - 4: "ERROR_REASON_ALREADY_EXISTS", - 5: "ERROR_REASON_INVALID_REQUEST", - 6: "ERROR_REASON_VERIFICATION_REQUIRED", - 7: "ERROR_REASON_OPERATION_DISABLED", - 8: "ERROR_REASON_RATE_LIMITED", - 9: "ERROR_REASON_TOKEN_EXPIRED", - 10: "ERROR_REASON_ACCOUNT_DEACTIVATED", - } - ErrorReason_value = map[string]int32{ - "ERROR_REASON_UNSPECIFIED": 0, - "ERROR_REASON_INVALID_CREDENTIALS": 1, - "ERROR_REASON_PERMISSION_DENIED": 2, - "ERROR_REASON_NOT_FOUND": 3, - "ERROR_REASON_ALREADY_EXISTS": 4, - "ERROR_REASON_INVALID_REQUEST": 5, - "ERROR_REASON_VERIFICATION_REQUIRED": 6, - "ERROR_REASON_OPERATION_DISABLED": 7, - "ERROR_REASON_RATE_LIMITED": 8, - "ERROR_REASON_TOKEN_EXPIRED": 9, - "ERROR_REASON_ACCOUNT_DEACTIVATED": 10, - } -) - -func (x ErrorReason) Enum() *ErrorReason { - p := new(ErrorReason) - *p = x - return p -} - -func (x ErrorReason) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (ErrorReason) Descriptor() protoreflect.EnumDescriptor { - return file_authorizer_v1_errors_proto_enumTypes[0].Descriptor() -} - -func (ErrorReason) Type() protoreflect.EnumType { - return &file_authorizer_v1_errors_proto_enumTypes[0] -} - -func (x ErrorReason) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use ErrorReason.Descriptor instead. -func (ErrorReason) EnumDescriptor() ([]byte, []int) { - return file_authorizer_v1_errors_proto_rawDescGZIP(), []int{0} -} - -var File_authorizer_v1_errors_proto protoreflect.FileDescriptor - -var file_authorizer_v1_errors_proto_rawDesc = []byte{ - 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2a, 0x86, 0x03, 0x0a, 0x0b, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x18, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x53, 0x10, 0x01, 0x12, - 0x22, 0x0a, 0x1e, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x12, - 0x1f, 0x0a, 0x1b, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x04, - 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, - 0x10, 0x05, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x06, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x52, - 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, - 0x1d, 0x0a, 0x19, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x52, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x1e, - 0x0a, 0x1a, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, - 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x09, 0x12, 0x24, - 0x0a, 0x20, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, - 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, - 0x45, 0x44, 0x10, 0x0a, 0x42, 0xc1, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x64, 0x65, 0x76, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x77, 0x69, 0x74, - 0x68, 0x2d, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_authorizer_v1_errors_proto_rawDescOnce sync.Once - file_authorizer_v1_errors_proto_rawDescData = file_authorizer_v1_errors_proto_rawDesc -) - -func file_authorizer_v1_errors_proto_rawDescGZIP() []byte { - file_authorizer_v1_errors_proto_rawDescOnce.Do(func() { - file_authorizer_v1_errors_proto_rawDescData = protoimpl.X.CompressGZIP(file_authorizer_v1_errors_proto_rawDescData) - }) - return file_authorizer_v1_errors_proto_rawDescData -} - -var file_authorizer_v1_errors_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_authorizer_v1_errors_proto_goTypes = []any{ - (ErrorReason)(0), // 0: authorizer.v1.ErrorReason -} -var file_authorizer_v1_errors_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_authorizer_v1_errors_proto_init() } -func file_authorizer_v1_errors_proto_init() { - if File_authorizer_v1_errors_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_authorizer_v1_errors_proto_rawDesc, - NumEnums: 1, - NumMessages: 0, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_authorizer_v1_errors_proto_goTypes, - DependencyIndexes: file_authorizer_v1_errors_proto_depIdxs, - EnumInfos: file_authorizer_v1_errors_proto_enumTypes, - }.Build() - File_authorizer_v1_errors_proto = out.File - file_authorizer_v1_errors_proto_rawDesc = nil - file_authorizer_v1_errors_proto_goTypes = nil - file_authorizer_v1_errors_proto_depIdxs = nil -} diff --git a/with-grpc/gen/authorizer/v1/pagination.pb.go b/with-grpc/gen/authorizer/v1/pagination.pb.go deleted file mode 100644 index 46f6fa0..0000000 --- a/with-grpc/gen/authorizer/v1/pagination.pb.go +++ /dev/null @@ -1,264 +0,0 @@ -// proto/authorizer/v1/pagination.proto -// -// Pagination types shared across List RPCs. -// -// The Authorizer GraphQL surface uses page+limit (offset-based) pagination. -// To keep the proto surface familiar for current users *and* compatible with -// AIP-158 (page_token-based) clients, both shapes are accepted on -// PaginationRequest; the server picks page_token when set, else falls back to -// page+limit. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.2 -// protoc (unknown) -// source: authorizer/v1/pagination.proto - -package authorizerv1 - -import ( - _ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type PaginationRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // 1-based page number. Ignored when page_token is set. Default 1. - Page int64 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` - // Page size. Server enforces an upper bound (typically 100). Default 10. - Limit int64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - // Opaque cursor returned by the previous List call's `next_page_token`. - // Preferred for new clients (AIP-158). When set, `page` is ignored. - PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` -} - -func (x *PaginationRequest) Reset() { - *x = PaginationRequest{} - mi := &file_authorizer_v1_pagination_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PaginationRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PaginationRequest) ProtoMessage() {} - -func (x *PaginationRequest) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_pagination_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PaginationRequest.ProtoReflect.Descriptor instead. -func (*PaginationRequest) Descriptor() ([]byte, []int) { - return file_authorizer_v1_pagination_proto_rawDescGZIP(), []int{0} -} - -func (x *PaginationRequest) GetPage() int64 { - if x != nil { - return x.Page - } - return 0 -} - -func (x *PaginationRequest) GetLimit() int64 { - if x != nil { - return x.Limit - } - return 0 -} - -func (x *PaginationRequest) GetPageToken() string { - if x != nil { - return x.PageToken - } - return "" -} - -type Pagination struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Limit int64 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` - Page int64 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` - Offset int64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` - Total int64 `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"` - // Opaque cursor for the next page; empty when no more pages. - NextPageToken string `protobuf:"bytes,5,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` -} - -func (x *Pagination) Reset() { - *x = Pagination{} - mi := &file_authorizer_v1_pagination_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Pagination) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Pagination) ProtoMessage() {} - -func (x *Pagination) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_pagination_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Pagination.ProtoReflect.Descriptor instead. -func (*Pagination) Descriptor() ([]byte, []int) { - return file_authorizer_v1_pagination_proto_rawDescGZIP(), []int{1} -} - -func (x *Pagination) GetLimit() int64 { - if x != nil { - return x.Limit - } - return 0 -} - -func (x *Pagination) GetPage() int64 { - if x != nil { - return x.Page - } - return 0 -} - -func (x *Pagination) GetOffset() int64 { - if x != nil { - return x.Offset - } - return 0 -} - -func (x *Pagination) GetTotal() int64 { - if x != nil { - return x.Total - } - return 0 -} - -func (x *Pagination) GetNextPageToken() string { - if x != nil { - return x.NextPageToken - } - return "" -} - -var File_authorizer_v1_pagination_proto protoreflect.FileDescriptor - -var file_authorizer_v1_pagination_proto_rawDesc = []byte{ - 0x0a, 0x1e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, - 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x71, 0x0a, 0x11, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, - 0x07, 0xba, 0x48, 0x04, 0x22, 0x02, 0x28, 0x00, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x20, - 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x0a, 0xba, - 0x48, 0x07, 0x22, 0x05, 0x18, 0xe8, 0x07, 0x28, 0x00, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, - 0x8c, 0x01, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0xc5, - 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x64, 0x65, - 0x76, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x2d, - 0x67, 0x72, 0x70, 0x63, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_authorizer_v1_pagination_proto_rawDescOnce sync.Once - file_authorizer_v1_pagination_proto_rawDescData = file_authorizer_v1_pagination_proto_rawDesc -) - -func file_authorizer_v1_pagination_proto_rawDescGZIP() []byte { - file_authorizer_v1_pagination_proto_rawDescOnce.Do(func() { - file_authorizer_v1_pagination_proto_rawDescData = protoimpl.X.CompressGZIP(file_authorizer_v1_pagination_proto_rawDescData) - }) - return file_authorizer_v1_pagination_proto_rawDescData -} - -var file_authorizer_v1_pagination_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_authorizer_v1_pagination_proto_goTypes = []any{ - (*PaginationRequest)(nil), // 0: authorizer.v1.PaginationRequest - (*Pagination)(nil), // 1: authorizer.v1.Pagination -} -var file_authorizer_v1_pagination_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_authorizer_v1_pagination_proto_init() } -func file_authorizer_v1_pagination_proto_init() { - if File_authorizer_v1_pagination_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_authorizer_v1_pagination_proto_rawDesc, - NumEnums: 0, - NumMessages: 2, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_authorizer_v1_pagination_proto_goTypes, - DependencyIndexes: file_authorizer_v1_pagination_proto_depIdxs, - MessageInfos: file_authorizer_v1_pagination_proto_msgTypes, - }.Build() - File_authorizer_v1_pagination_proto = out.File - file_authorizer_v1_pagination_proto_rawDesc = nil - file_authorizer_v1_pagination_proto_goTypes = nil - file_authorizer_v1_pagination_proto_depIdxs = nil -} diff --git a/with-grpc/gen/authorizer/v1/types.pb.go b/with-grpc/gen/authorizer/v1/types.pb.go deleted file mode 100644 index 0861cb7..0000000 --- a/with-grpc/gen/authorizer/v1/types.pb.go +++ /dev/null @@ -1,1131 +0,0 @@ -// Shared message types used by the Authorizer service. Field naming mirrors -// the GraphQL schema 1:1 so REST/gRPC clients see the same shape. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.2 -// protoc (unknown) -// source: authorizer/v1/types.proto - -package authorizerv1 - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// User mirrors the GraphQL User type. Returned by Profile and embedded in -// AuthResponse. -type User struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - // Either email or phone_number is always present. - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - EmailVerified bool `protobuf:"varint,3,opt,name=email_verified,json=emailVerified,proto3" json:"email_verified,omitempty"` - SignupMethods string `protobuf:"bytes,4,opt,name=signup_methods,json=signupMethods,proto3" json:"signup_methods,omitempty"` - GivenName string `protobuf:"bytes,5,opt,name=given_name,json=givenName,proto3" json:"given_name,omitempty"` - FamilyName string `protobuf:"bytes,6,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"` - MiddleName string `protobuf:"bytes,7,opt,name=middle_name,json=middleName,proto3" json:"middle_name,omitempty"` - Nickname string `protobuf:"bytes,8,opt,name=nickname,proto3" json:"nickname,omitempty"` - // Defaults to email when unset. - PreferredUsername string `protobuf:"bytes,9,opt,name=preferred_username,json=preferredUsername,proto3" json:"preferred_username,omitempty"` - Gender string `protobuf:"bytes,10,opt,name=gender,proto3" json:"gender,omitempty"` - Birthdate string `protobuf:"bytes,11,opt,name=birthdate,proto3" json:"birthdate,omitempty"` - PhoneNumber string `protobuf:"bytes,12,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` - PhoneNumberVerified bool `protobuf:"varint,13,opt,name=phone_number_verified,json=phoneNumberVerified,proto3" json:"phone_number_verified,omitempty"` - Picture string `protobuf:"bytes,14,opt,name=picture,proto3" json:"picture,omitempty"` - Roles []string `protobuf:"bytes,15,rep,name=roles,proto3" json:"roles,omitempty"` - CreatedAt int64 `protobuf:"varint,16,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - UpdatedAt int64 `protobuf:"varint,17,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - RevokedTimestamp int64 `protobuf:"varint,18,opt,name=revoked_timestamp,json=revokedTimestamp,proto3" json:"revoked_timestamp,omitempty"` - IsMultiFactorAuthEnabled bool `protobuf:"varint,19,opt,name=is_multi_factor_auth_enabled,json=isMultiFactorAuthEnabled,proto3" json:"is_multi_factor_auth_enabled,omitempty"` - // Free-form key/value bag — same as GraphQL `app_data: Map`. - AppData *AppData `protobuf:"bytes,20,opt,name=app_data,json=appData,proto3" json:"app_data,omitempty"` -} - -func (x *User) Reset() { - *x = User{} - mi := &file_authorizer_v1_types_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *User) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*User) ProtoMessage() {} - -func (x *User) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_types_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use User.ProtoReflect.Descriptor instead. -func (*User) Descriptor() ([]byte, []int) { - return file_authorizer_v1_types_proto_rawDescGZIP(), []int{0} -} - -func (x *User) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *User) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *User) GetEmailVerified() bool { - if x != nil { - return x.EmailVerified - } - return false -} - -func (x *User) GetSignupMethods() string { - if x != nil { - return x.SignupMethods - } - return "" -} - -func (x *User) GetGivenName() string { - if x != nil { - return x.GivenName - } - return "" -} - -func (x *User) GetFamilyName() string { - if x != nil { - return x.FamilyName - } - return "" -} - -func (x *User) GetMiddleName() string { - if x != nil { - return x.MiddleName - } - return "" -} - -func (x *User) GetNickname() string { - if x != nil { - return x.Nickname - } - return "" -} - -func (x *User) GetPreferredUsername() string { - if x != nil { - return x.PreferredUsername - } - return "" -} - -func (x *User) GetGender() string { - if x != nil { - return x.Gender - } - return "" -} - -func (x *User) GetBirthdate() string { - if x != nil { - return x.Birthdate - } - return "" -} - -func (x *User) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *User) GetPhoneNumberVerified() bool { - if x != nil { - return x.PhoneNumberVerified - } - return false -} - -func (x *User) GetPicture() string { - if x != nil { - return x.Picture - } - return "" -} - -func (x *User) GetRoles() []string { - if x != nil { - return x.Roles - } - return nil -} - -func (x *User) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *User) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *User) GetRevokedTimestamp() int64 { - if x != nil { - return x.RevokedTimestamp - } - return 0 -} - -func (x *User) GetIsMultiFactorAuthEnabled() bool { - if x != nil { - return x.IsMultiFactorAuthEnabled - } - return false -} - -func (x *User) GetAppData() *AppData { - if x != nil { - return x.AppData - } - return nil -} - -// AuthResponse mirrors the GraphQL AuthResponse type. Returned (wrapped) by -// every method that produces a session: Signup, Login, MagicLinkLogin, -// VerifyEmail, VerifyOtp, Session. -type AuthResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - ShouldShowEmailOtpScreen bool `protobuf:"varint,2,opt,name=should_show_email_otp_screen,json=shouldShowEmailOtpScreen,proto3" json:"should_show_email_otp_screen,omitempty"` - ShouldShowMobileOtpScreen bool `protobuf:"varint,3,opt,name=should_show_mobile_otp_screen,json=shouldShowMobileOtpScreen,proto3" json:"should_show_mobile_otp_screen,omitempty"` - ShouldShowTotpScreen bool `protobuf:"varint,4,opt,name=should_show_totp_screen,json=shouldShowTotpScreen,proto3" json:"should_show_totp_screen,omitempty"` - AccessToken string `protobuf:"bytes,5,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` - IdToken string `protobuf:"bytes,6,opt,name=id_token,json=idToken,proto3" json:"id_token,omitempty"` - RefreshToken string `protobuf:"bytes,7,opt,name=refresh_token,json=refreshToken,proto3" json:"refresh_token,omitempty"` - ExpiresIn int64 `protobuf:"varint,8,opt,name=expires_in,json=expiresIn,proto3" json:"expires_in,omitempty"` - User *User `protobuf:"bytes,9,opt,name=user,proto3" json:"user,omitempty"` - // TOTP enrolment artifacts (populated only when this AuthResponse - // initiates TOTP setup; one-time, never re-shown). - AuthenticatorScannerImage string `protobuf:"bytes,10,opt,name=authenticator_scanner_image,json=authenticatorScannerImage,proto3" json:"authenticator_scanner_image,omitempty"` - AuthenticatorSecret string `protobuf:"bytes,11,opt,name=authenticator_secret,json=authenticatorSecret,proto3" json:"authenticator_secret,omitempty"` - AuthenticatorRecoveryCodes []string `protobuf:"bytes,12,rep,name=authenticator_recovery_codes,json=authenticatorRecoveryCodes,proto3" json:"authenticator_recovery_codes,omitempty"` -} - -func (x *AuthResponse) Reset() { - *x = AuthResponse{} - mi := &file_authorizer_v1_types_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *AuthResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AuthResponse) ProtoMessage() {} - -func (x *AuthResponse) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_types_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AuthResponse.ProtoReflect.Descriptor instead. -func (*AuthResponse) Descriptor() ([]byte, []int) { - return file_authorizer_v1_types_proto_rawDescGZIP(), []int{1} -} - -func (x *AuthResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *AuthResponse) GetShouldShowEmailOtpScreen() bool { - if x != nil { - return x.ShouldShowEmailOtpScreen - } - return false -} - -func (x *AuthResponse) GetShouldShowMobileOtpScreen() bool { - if x != nil { - return x.ShouldShowMobileOtpScreen - } - return false -} - -func (x *AuthResponse) GetShouldShowTotpScreen() bool { - if x != nil { - return x.ShouldShowTotpScreen - } - return false -} - -func (x *AuthResponse) GetAccessToken() string { - if x != nil { - return x.AccessToken - } - return "" -} - -func (x *AuthResponse) GetIdToken() string { - if x != nil { - return x.IdToken - } - return "" -} - -func (x *AuthResponse) GetRefreshToken() string { - if x != nil { - return x.RefreshToken - } - return "" -} - -func (x *AuthResponse) GetExpiresIn() int64 { - if x != nil { - return x.ExpiresIn - } - return 0 -} - -func (x *AuthResponse) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -func (x *AuthResponse) GetAuthenticatorScannerImage() string { - if x != nil { - return x.AuthenticatorScannerImage - } - return "" -} - -func (x *AuthResponse) GetAuthenticatorSecret() string { - if x != nil { - return x.AuthenticatorSecret - } - return "" -} - -func (x *AuthResponse) GetAuthenticatorRecoveryCodes() []string { - if x != nil { - return x.AuthenticatorRecoveryCodes - } - return nil -} - -// Permission is one (object, relation) pair the subject holds: "subject has -// `relation` on `object`". Mirrors the GraphQL Permission type. -type Permission struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Object string `protobuf:"bytes,1,opt,name=object,proto3" json:"object,omitempty"` - Relation string `protobuf:"bytes,2,opt,name=relation,proto3" json:"relation,omitempty"` -} - -func (x *Permission) Reset() { - *x = Permission{} - mi := &file_authorizer_v1_types_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Permission) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Permission) ProtoMessage() {} - -func (x *Permission) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_types_proto_msgTypes[2] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Permission.ProtoReflect.Descriptor instead. -func (*Permission) Descriptor() ([]byte, []int) { - return file_authorizer_v1_types_proto_rawDescGZIP(), []int{2} -} - -func (x *Permission) GetObject() string { - if x != nil { - return x.Object - } - return "" -} - -func (x *Permission) GetRelation() string { - if x != nil { - return x.Relation - } - return "" -} - -// FgaRelationInput is a (relation, object) requirement evaluated against the -// authenticated caller during Session / ValidateJwtToken / ValidateSession. -// AND semantics, fail-closed. Mirrors the GraphQL FgaRelationInput type. -type FgaRelationInput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Relation string `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` - Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` -} - -func (x *FgaRelationInput) Reset() { - *x = FgaRelationInput{} - mi := &file_authorizer_v1_types_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaRelationInput) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaRelationInput) ProtoMessage() {} - -func (x *FgaRelationInput) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_types_proto_msgTypes[3] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaRelationInput.ProtoReflect.Descriptor instead. -func (*FgaRelationInput) Descriptor() ([]byte, []int) { - return file_authorizer_v1_types_proto_rawDescGZIP(), []int{3} -} - -func (x *FgaRelationInput) GetRelation() string { - if x != nil { - return x.Relation - } - return "" -} - -func (x *FgaRelationInput) GetObject() string { - if x != nil { - return x.Object - } - return "" -} - -// FgaTupleInput is one relationship tuple supplied as request-scoped context -// for a permission check; contextual tuples are never persisted. Mirrors the -// GraphQL FgaTupleInput type. -type FgaTupleInput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` - Relation string `protobuf:"bytes,2,opt,name=relation,proto3" json:"relation,omitempty"` - Object string `protobuf:"bytes,3,opt,name=object,proto3" json:"object,omitempty"` -} - -func (x *FgaTupleInput) Reset() { - *x = FgaTupleInput{} - mi := &file_authorizer_v1_types_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *FgaTupleInput) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FgaTupleInput) ProtoMessage() {} - -func (x *FgaTupleInput) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_types_proto_msgTypes[4] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FgaTupleInput.ProtoReflect.Descriptor instead. -func (*FgaTupleInput) Descriptor() ([]byte, []int) { - return file_authorizer_v1_types_proto_rawDescGZIP(), []int{4} -} - -func (x *FgaTupleInput) GetUser() string { - if x != nil { - return x.User - } - return "" -} - -func (x *FgaTupleInput) GetRelation() string { - if x != nil { - return x.Relation - } - return "" -} - -func (x *FgaTupleInput) GetObject() string { - if x != nil { - return x.Object - } - return "" -} - -// PermissionCheckInput is one permission to evaluate: "does the subject have -// on ?". Mirrors the GraphQL PermissionCheckInput type. -type PermissionCheckInput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Relation string `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` - Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` - ContextualTuples []*FgaTupleInput `protobuf:"bytes,3,rep,name=contextual_tuples,json=contextualTuples,proto3" json:"contextual_tuples,omitempty"` -} - -func (x *PermissionCheckInput) Reset() { - *x = PermissionCheckInput{} - mi := &file_authorizer_v1_types_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PermissionCheckInput) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PermissionCheckInput) ProtoMessage() {} - -func (x *PermissionCheckInput) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_types_proto_msgTypes[5] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PermissionCheckInput.ProtoReflect.Descriptor instead. -func (*PermissionCheckInput) Descriptor() ([]byte, []int) { - return file_authorizer_v1_types_proto_rawDescGZIP(), []int{5} -} - -func (x *PermissionCheckInput) GetRelation() string { - if x != nil { - return x.Relation - } - return "" -} - -func (x *PermissionCheckInput) GetObject() string { - if x != nil { - return x.Object - } - return "" -} - -func (x *PermissionCheckInput) GetContextualTuples() []*FgaTupleInput { - if x != nil { - return x.ContextualTuples - } - return nil -} - -// PermissionCheckResult is the outcome of one permission check, echoing the -// checked pair so batch results are self-describing (and positionally -// aligned). Mirrors the GraphQL PermissionCheckResult type. -type PermissionCheckResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Relation string `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` - Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` - Allowed bool `protobuf:"varint,3,opt,name=allowed,proto3" json:"allowed,omitempty"` -} - -func (x *PermissionCheckResult) Reset() { - *x = PermissionCheckResult{} - mi := &file_authorizer_v1_types_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *PermissionCheckResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PermissionCheckResult) ProtoMessage() {} - -func (x *PermissionCheckResult) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_types_proto_msgTypes[6] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PermissionCheckResult.ProtoReflect.Descriptor instead. -func (*PermissionCheckResult) Descriptor() ([]byte, []int) { - return file_authorizer_v1_types_proto_rawDescGZIP(), []int{6} -} - -func (x *PermissionCheckResult) GetRelation() string { - if x != nil { - return x.Relation - } - return "" -} - -func (x *PermissionCheckResult) GetObject() string { - if x != nil { - return x.Object - } - return "" -} - -func (x *PermissionCheckResult) GetAllowed() bool { - if x != nil { - return x.Allowed - } - return false -} - -// Meta mirrors the GraphQL Meta type — server feature flags + provider -// availability, returned by the Meta query. -type Meta struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` - IsGoogleLoginEnabled bool `protobuf:"varint,3,opt,name=is_google_login_enabled,json=isGoogleLoginEnabled,proto3" json:"is_google_login_enabled,omitempty"` - IsFacebookLoginEnabled bool `protobuf:"varint,4,opt,name=is_facebook_login_enabled,json=isFacebookLoginEnabled,proto3" json:"is_facebook_login_enabled,omitempty"` - IsGithubLoginEnabled bool `protobuf:"varint,5,opt,name=is_github_login_enabled,json=isGithubLoginEnabled,proto3" json:"is_github_login_enabled,omitempty"` - IsLinkedinLoginEnabled bool `protobuf:"varint,6,opt,name=is_linkedin_login_enabled,json=isLinkedinLoginEnabled,proto3" json:"is_linkedin_login_enabled,omitempty"` - IsAppleLoginEnabled bool `protobuf:"varint,7,opt,name=is_apple_login_enabled,json=isAppleLoginEnabled,proto3" json:"is_apple_login_enabled,omitempty"` - IsDiscordLoginEnabled bool `protobuf:"varint,8,opt,name=is_discord_login_enabled,json=isDiscordLoginEnabled,proto3" json:"is_discord_login_enabled,omitempty"` - IsTwitterLoginEnabled bool `protobuf:"varint,9,opt,name=is_twitter_login_enabled,json=isTwitterLoginEnabled,proto3" json:"is_twitter_login_enabled,omitempty"` - IsMicrosoftLoginEnabled bool `protobuf:"varint,10,opt,name=is_microsoft_login_enabled,json=isMicrosoftLoginEnabled,proto3" json:"is_microsoft_login_enabled,omitempty"` - IsTwitchLoginEnabled bool `protobuf:"varint,11,opt,name=is_twitch_login_enabled,json=isTwitchLoginEnabled,proto3" json:"is_twitch_login_enabled,omitempty"` - IsRobloxLoginEnabled bool `protobuf:"varint,12,opt,name=is_roblox_login_enabled,json=isRobloxLoginEnabled,proto3" json:"is_roblox_login_enabled,omitempty"` - IsEmailVerificationEnabled bool `protobuf:"varint,13,opt,name=is_email_verification_enabled,json=isEmailVerificationEnabled,proto3" json:"is_email_verification_enabled,omitempty"` - IsBasicAuthenticationEnabled bool `protobuf:"varint,14,opt,name=is_basic_authentication_enabled,json=isBasicAuthenticationEnabled,proto3" json:"is_basic_authentication_enabled,omitempty"` - IsMagicLinkLoginEnabled bool `protobuf:"varint,15,opt,name=is_magic_link_login_enabled,json=isMagicLinkLoginEnabled,proto3" json:"is_magic_link_login_enabled,omitempty"` - IsSignUpEnabled bool `protobuf:"varint,16,opt,name=is_sign_up_enabled,json=isSignUpEnabled,proto3" json:"is_sign_up_enabled,omitempty"` - IsStrongPasswordEnabled bool `protobuf:"varint,17,opt,name=is_strong_password_enabled,json=isStrongPasswordEnabled,proto3" json:"is_strong_password_enabled,omitempty"` - IsMultiFactorAuthEnabled bool `protobuf:"varint,18,opt,name=is_multi_factor_auth_enabled,json=isMultiFactorAuthEnabled,proto3" json:"is_multi_factor_auth_enabled,omitempty"` - IsMobileBasicAuthenticationEnabled bool `protobuf:"varint,19,opt,name=is_mobile_basic_authentication_enabled,json=isMobileBasicAuthenticationEnabled,proto3" json:"is_mobile_basic_authentication_enabled,omitempty"` - IsPhoneVerificationEnabled bool `protobuf:"varint,20,opt,name=is_phone_verification_enabled,json=isPhoneVerificationEnabled,proto3" json:"is_phone_verification_enabled,omitempty"` -} - -func (x *Meta) Reset() { - *x = Meta{} - mi := &file_authorizer_v1_types_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Meta) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Meta) ProtoMessage() {} - -func (x *Meta) ProtoReflect() protoreflect.Message { - mi := &file_authorizer_v1_types_proto_msgTypes[7] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Meta.ProtoReflect.Descriptor instead. -func (*Meta) Descriptor() ([]byte, []int) { - return file_authorizer_v1_types_proto_rawDescGZIP(), []int{7} -} - -func (x *Meta) GetVersion() string { - if x != nil { - return x.Version - } - return "" -} - -func (x *Meta) GetClientId() string { - if x != nil { - return x.ClientId - } - return "" -} - -func (x *Meta) GetIsGoogleLoginEnabled() bool { - if x != nil { - return x.IsGoogleLoginEnabled - } - return false -} - -func (x *Meta) GetIsFacebookLoginEnabled() bool { - if x != nil { - return x.IsFacebookLoginEnabled - } - return false -} - -func (x *Meta) GetIsGithubLoginEnabled() bool { - if x != nil { - return x.IsGithubLoginEnabled - } - return false -} - -func (x *Meta) GetIsLinkedinLoginEnabled() bool { - if x != nil { - return x.IsLinkedinLoginEnabled - } - return false -} - -func (x *Meta) GetIsAppleLoginEnabled() bool { - if x != nil { - return x.IsAppleLoginEnabled - } - return false -} - -func (x *Meta) GetIsDiscordLoginEnabled() bool { - if x != nil { - return x.IsDiscordLoginEnabled - } - return false -} - -func (x *Meta) GetIsTwitterLoginEnabled() bool { - if x != nil { - return x.IsTwitterLoginEnabled - } - return false -} - -func (x *Meta) GetIsMicrosoftLoginEnabled() bool { - if x != nil { - return x.IsMicrosoftLoginEnabled - } - return false -} - -func (x *Meta) GetIsTwitchLoginEnabled() bool { - if x != nil { - return x.IsTwitchLoginEnabled - } - return false -} - -func (x *Meta) GetIsRobloxLoginEnabled() bool { - if x != nil { - return x.IsRobloxLoginEnabled - } - return false -} - -func (x *Meta) GetIsEmailVerificationEnabled() bool { - if x != nil { - return x.IsEmailVerificationEnabled - } - return false -} - -func (x *Meta) GetIsBasicAuthenticationEnabled() bool { - if x != nil { - return x.IsBasicAuthenticationEnabled - } - return false -} - -func (x *Meta) GetIsMagicLinkLoginEnabled() bool { - if x != nil { - return x.IsMagicLinkLoginEnabled - } - return false -} - -func (x *Meta) GetIsSignUpEnabled() bool { - if x != nil { - return x.IsSignUpEnabled - } - return false -} - -func (x *Meta) GetIsStrongPasswordEnabled() bool { - if x != nil { - return x.IsStrongPasswordEnabled - } - return false -} - -func (x *Meta) GetIsMultiFactorAuthEnabled() bool { - if x != nil { - return x.IsMultiFactorAuthEnabled - } - return false -} - -func (x *Meta) GetIsMobileBasicAuthenticationEnabled() bool { - if x != nil { - return x.IsMobileBasicAuthenticationEnabled - } - return false -} - -func (x *Meta) GetIsPhoneVerificationEnabled() bool { - if x != nil { - return x.IsPhoneVerificationEnabled - } - return false -} - -var File_authorizer_v1_types_proto protoreflect.FileDescriptor - -var file_authorizer_v1_types_proto_rawDesc = []byte{ - 0x0a, 0x19, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x1a, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc1, 0x05, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x76, - 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, - 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x2d, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, - 0x68, 0x64, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, - 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x68, 0x6f, 0x6e, - 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, - 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3e, 0x0a, 0x1c, 0x69, 0x73, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x69, - 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x75, 0x74, 0x68, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x07, 0x61, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x22, 0xc1, 0x04, 0x0a, 0x0c, 0x41, - 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, - 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x6f, 0x74, 0x70, 0x5f, 0x73, - 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x73, 0x68, 0x6f, - 0x75, 0x6c, 0x64, 0x53, 0x68, 0x6f, 0x77, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x4f, 0x74, 0x70, 0x53, - 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x40, 0x0a, 0x1d, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, - 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x74, 0x70, 0x5f, - 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x73, 0x68, - 0x6f, 0x75, 0x6c, 0x64, 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x4f, 0x74, - 0x70, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x35, 0x0a, 0x17, 0x73, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x74, 0x6f, 0x74, 0x70, 0x5f, 0x73, 0x63, 0x72, 0x65, - 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, - 0x53, 0x68, 0x6f, 0x77, 0x54, 0x6f, 0x74, 0x70, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x21, - 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, - 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, - 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x1b, 0x61, 0x75, 0x74, - 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x6e, - 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, - 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x63, 0x61, - 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x61, 0x75, 0x74, - 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x40, 0x0a, 0x1c, - 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, - 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x40, - 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x46, 0x0a, 0x10, 0x46, 0x67, 0x61, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x57, 0x0a, 0x0d, 0x46, 0x67, 0x61, 0x54, - 0x75, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x22, 0x95, 0x01, 0x0a, 0x14, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x49, - 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x74, 0x75, 0x70, - 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x67, 0x61, 0x54, 0x75, 0x70, - 0x6c, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x75, 0x61, 0x6c, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x22, 0x65, 0x0a, 0x15, 0x50, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x22, 0xfc, 0x08, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x35, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, - 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x14, 0x69, 0x73, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x69, 0x73, 0x5f, 0x66, 0x61, - 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x73, 0x46, 0x61, - 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, - 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x69, 0x73, 0x5f, - 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x73, - 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x16, 0x69, 0x73, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x65, - 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x73, 0x5f, - 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x44, - 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x73, 0x5f, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, - 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x69, - 0x73, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x69, - 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x17, 0x69, 0x73, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x74, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x54, 0x77, 0x69, - 0x74, 0x63, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x35, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x62, 0x6c, 0x6f, 0x78, 0x5f, 0x6c, 0x6f, 0x67, - 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x14, 0x69, 0x73, 0x52, 0x6f, 0x62, 0x6c, 0x6f, 0x78, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x1d, 0x69, 0x73, 0x5f, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x69, - 0x73, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x1f, 0x69, 0x73, 0x5f, - 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x1c, 0x69, 0x73, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x12, 0x3c, 0x0a, 0x1b, 0x69, 0x73, 0x5f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x6c, 0x69, 0x6e, - 0x6b, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x73, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x4c, 0x69, - 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2b, - 0x0a, 0x12, 0x69, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x53, 0x69, - 0x67, 0x6e, 0x55, 0x70, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x69, - 0x73, 0x5f, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x17, 0x69, 0x73, 0x53, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x1c, 0x69, 0x73, 0x5f, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, - 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x75, 0x74, - 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x26, 0x69, 0x73, 0x5f, 0x6d, - 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x22, 0x69, 0x73, 0x4d, 0x6f, 0x62, 0x69, - 0x6c, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x1d, - 0x69, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x1a, 0x69, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, - 0xc0, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x64, 0x65, 0x76, 0x2f, 0x65, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x2d, 0x67, 0x72, 0x70, 0x63, - 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x2f, - 0x76, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x76, 0x31, 0xa2, - 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_authorizer_v1_types_proto_rawDescOnce sync.Once - file_authorizer_v1_types_proto_rawDescData = file_authorizer_v1_types_proto_rawDesc -) - -func file_authorizer_v1_types_proto_rawDescGZIP() []byte { - file_authorizer_v1_types_proto_rawDescOnce.Do(func() { - file_authorizer_v1_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_authorizer_v1_types_proto_rawDescData) - }) - return file_authorizer_v1_types_proto_rawDescData -} - -var file_authorizer_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 8) -var file_authorizer_v1_types_proto_goTypes = []any{ - (*User)(nil), // 0: authorizer.v1.User - (*AuthResponse)(nil), // 1: authorizer.v1.AuthResponse - (*Permission)(nil), // 2: authorizer.v1.Permission - (*FgaRelationInput)(nil), // 3: authorizer.v1.FgaRelationInput - (*FgaTupleInput)(nil), // 4: authorizer.v1.FgaTupleInput - (*PermissionCheckInput)(nil), // 5: authorizer.v1.PermissionCheckInput - (*PermissionCheckResult)(nil), // 6: authorizer.v1.PermissionCheckResult - (*Meta)(nil), // 7: authorizer.v1.Meta - (*AppData)(nil), // 8: authorizer.v1.AppData -} -var file_authorizer_v1_types_proto_depIdxs = []int32{ - 8, // 0: authorizer.v1.User.app_data:type_name -> authorizer.v1.AppData - 0, // 1: authorizer.v1.AuthResponse.user:type_name -> authorizer.v1.User - 4, // 2: authorizer.v1.PermissionCheckInput.contextual_tuples:type_name -> authorizer.v1.FgaTupleInput - 3, // [3:3] is the sub-list for method output_type - 3, // [3:3] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name -} - -func init() { file_authorizer_v1_types_proto_init() } -func file_authorizer_v1_types_proto_init() { - if File_authorizer_v1_types_proto != nil { - return - } - file_authorizer_v1_common_proto_init() - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_authorizer_v1_types_proto_rawDesc, - NumEnums: 0, - NumMessages: 8, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_authorizer_v1_types_proto_goTypes, - DependencyIndexes: file_authorizer_v1_types_proto_depIdxs, - MessageInfos: file_authorizer_v1_types_proto_msgTypes, - }.Build() - File_authorizer_v1_types_proto = out.File - file_authorizer_v1_types_proto_rawDesc = nil - file_authorizer_v1_types_proto_goTypes = nil - file_authorizer_v1_types_proto_depIdxs = nil -} diff --git a/with-grpc/go.mod b/with-grpc/go.mod index 7ad35ff..06b474a 100644 --- a/with-grpc/go.mod +++ b/with-grpc/go.mod @@ -3,15 +3,16 @@ module github.com/authorizerdev/examples/with-grpc go 1.25.0 require ( - buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 - google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa - google.golang.org/grpc v1.81.1 - google.golang.org/protobuf v1.36.11 + github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 + google.golang.org/grpc v1.82.1 ) require ( - golang.org/x/net v0.51.0 // indirect - golang.org/x/sys v0.42.0 // indirect - golang.org/x/text v0.34.0 // indirect + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 // indirect + golang.org/x/net v0.53.0 // indirect + golang.org/x/sys v0.43.0 // indirect + golang.org/x/text v0.36.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 // indirect + google.golang.org/protobuf v1.36.11 // indirect ) diff --git a/with-grpc/go.sum b/with-grpc/go.sum index af6b23e..26f5504 100644 --- a/with-grpc/go.sum +++ b/with-grpc/go.sum @@ -1,5 +1,7 @@ buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 h1:s6hzCXtND/ICdGPTMGk7C+/BFlr2Jg5GyH0NKf4XGXg= buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1/go.mod h1:tvtbpgaVXZX4g6Pn+AnzFycuRK3MOz5HJfEGeEllXYM= +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 h1:te2ADwG6Xyi1VVB6z3+jz/n1I/gdhqEewZFYfeosfmI= +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1/go.mod h1:brXkT8HCo4XawfZ39ai2TQdgNRVFrYnRd5cSP899wHU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= @@ -24,19 +26,19 @@ go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfC go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= -golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= -golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= -golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= +golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= +golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= +golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= +golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 h1:PvEgGJf9C/1u5CHkInMg7UFYYUoiaQmW2LbtH0pjB78= google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ= -google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= +google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE= +google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= diff --git a/with-grpc/main.go b/with-grpc/main.go index 26f826e..0b5031d 100644 --- a/with-grpc/main.go +++ b/with-grpc/main.go @@ -16,13 +16,14 @@ import ( "flag" "fmt" "log" + "net/http" "time" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/metadata" - authorizerv1 "github.com/authorizerdev/examples/with-grpc/gen/authorizer/v1" + authorizerv1 "github.com/authorizerdev/authorizer-proto-go/authorizer/v1" ) func main() { @@ -62,17 +63,43 @@ func main() { if err != nil { log.Fatalf("signup: %v", err) } - fmt.Printf("1. Signup : %s (user id %s)\n", signup.Message, signup.User.GetId()) + // With MFA offered the response carries the message only — no token and no + // user, because nothing is authenticated until the offer is settled. + fmt.Printf("1. Signup : %s\n", signup.Message) // --- 2. Public: Login → access token -------------------------------- + // Capture the response metadata: since 2.4.0 MFA is on by default, so a + // brand-new user is OFFERED an MFA setup and the token is WITHHELD until + // they enrol a factor or decline. Declining is identified by the + // `mfa_session` cookie the login response set. gRPC has no cookie jar — + // the server serialises cookies as `set-cookie` response metadata, and a + // pure-gRPC caller replays them as `cookie` request metadata by hand. + var loginMD metadata.MD login, err := user.Login(baseCtx, &authorizerv1.LoginRequest{ Email: email, Password: password, - }) + }, grpc.Header(&loginMD)) if err != nil { log.Fatalf("login: %v", err) } - fmt.Printf("2. Login : got access token (expires in %ds)\n", login.ExpiresIn) + + if login.AccessToken == "" { + fmt.Printf("2. Login : %s — declining it\n", login.Message) + session := mfaSessionFrom(loginMD) + if session == "" { + log.Fatal("login: mfa setup offered but no mfa_session in the response metadata") + } + // Fails under --enforce-mfa, where declining is not permitted; a real + // app would drive the TOTP/OTP setup screen instead. + login, err = user.SkipMfaSetup( + metadata.AppendToOutgoingContext(baseCtx, "cookie", session), + &authorizerv1.SkipMfaSetupRequest{Email: email}, + ) + if err != nil { + log.Fatalf("skip mfa setup: %v", err) + } + } + fmt.Printf(" Access token : got one (expires in %ds)\n", login.ExpiresIn) // --- 3. Authenticated user call: Profile with bearer metadata ------- authedCtx := metadata.AppendToOutgoingContext(baseCtx, @@ -109,3 +136,17 @@ func main() { fmt.Printf("\n6. REST equivalent of Profile (same handler via grpc-gateway):\n"+ " curl -H 'Authorization: Bearer ' %s/v1/profile\n", *httpURL) } + +// mfaSessionFrom picks the `mfa_session` cookie out of a response's +// `set-cookie` metadata and returns it as a Cookie header value. Each cookie +// arrives as its own entry, in ordinary Set-Cookie syntax. +func mfaSessionFrom(md metadata.MD) string { + for _, line := range md.Get("set-cookie") { + for _, c := range (&http.Response{Header: http.Header{"Set-Cookie": {line}}}).Cookies() { + if c.Name == "mfa_session" { + return c.Name + "=" + c.Value + } + } + } + return "" +} diff --git a/with-k8s-tokenreview/app/Dockerfile b/with-k8s-tokenreview/app/Dockerfile index 208df6f..b6249ef 100644 --- a/with-k8s-tokenreview/app/Dockerfile +++ b/with-k8s-tokenreview/app/Dockerfile @@ -1,8 +1,3 @@ -# NOTE: go.mod carries a `replace => ../../../authorizer-go` for the unreleased -# SDK client_assertion support. That path is outside this build context, so run -# go mod vendor -# in this directory first (the vendor/ dir makes the replace path irrelevant), -# or drop the replace once the next authorizer-go tag ships. FROM golang:1.25-alpine AS build WORKDIR /src COPY . . diff --git a/with-k8s-tokenreview/app/go.mod b/with-k8s-tokenreview/app/go.mod index f7f5377..dfd0576 100644 --- a/with-k8s-tokenreview/app/go.mod +++ b/with-k8s-tokenreview/app/go.mod @@ -3,23 +3,18 @@ module github.com/authorizerdev/examples/with-k8s-tokenreview/app go 1.25.5 require ( - github.com/authorizerdev/authorizer-go v0.0.0 + github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5 github.com/golang-jwt/jwt/v4 v4.5.2 ) require ( buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 // indirect - golang.org/x/net v0.51.0 // indirect - golang.org/x/sys v0.42.0 // indirect - golang.org/x/text v0.34.0 // indirect + github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 // indirect + golang.org/x/net v0.53.0 // indirect + golang.org/x/sys v0.43.0 // indirect + golang.org/x/text v0.36.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 // indirect - google.golang.org/grpc v1.81.1 // indirect + google.golang.org/grpc v1.82.1 // indirect google.golang.org/protobuf v1.36.11 // indirect ) - -// The client_assertion fields (GetTokenRequest.ClientAssertion / -// ClientAssertionType, GrantTypeClientCredentials) are on authorizer-go main -// but not yet in a tagged release. Drop this replace (and pin the next -// released tag) once it ships. -replace github.com/authorizerdev/authorizer-go => ../../../authorizer-go diff --git a/with-k8s-tokenreview/app/go.sum b/with-k8s-tokenreview/app/go.sum index f984165..60bed94 100644 --- a/with-k8s-tokenreview/app/go.sum +++ b/with-k8s-tokenreview/app/go.sum @@ -1,5 +1,9 @@ buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 h1:s6hzCXtND/ICdGPTMGk7C+/BFlr2Jg5GyH0NKf4XGXg= buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1/go.mod h1:tvtbpgaVXZX4g6Pn+AnzFycuRK3MOz5HJfEGeEllXYM= +github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5 h1:1XK8wIULavh2yySN7e7PjkfYA4tmduu+/r0U0mp00jU= +github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5/go.mod h1:K+T7TOq5sLxRefpI0buBKOOdHeaLD7vhK0lmH0XLSE8= +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 h1:te2ADwG6Xyi1VVB6z3+jz/n1I/gdhqEewZFYfeosfmI= +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1/go.mod h1:brXkT8HCo4XawfZ39ai2TQdgNRVFrYnRd5cSP899wHU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= @@ -26,19 +30,19 @@ go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfC go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= -golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= -golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= -golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= +golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= +golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= +golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= +golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 h1:PvEgGJf9C/1u5CHkInMg7UFYYUoiaQmW2LbtH0pjB78= google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ= -google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= +google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE= +google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= diff --git a/with-k8s-tokenreview/app/main.go b/with-k8s-tokenreview/app/main.go index 6de8e91..b4a2b79 100644 --- a/with-k8s-tokenreview/app/main.go +++ b/with-k8s-tokenreview/app/main.go @@ -20,7 +20,7 @@ import ( "strings" "time" - authorizer "github.com/authorizerdev/authorizer-go" + authorizer "github.com/authorizerdev/authorizer-go/v2" "github.com/golang-jwt/jwt/v4" ) diff --git a/with-microservices-go/README.md b/with-microservices-go/README.md index bc8a44b..e809310 100644 --- a/with-microservices-go/README.md +++ b/with-microservices-go/README.md @@ -115,7 +115,3 @@ demo.sh end-to-end happy path + negative paths All services use structured JSON logging (`log/slog`) with a propagated `X-Request-ID`, context propagation on outbound calls, and graceful shutdown on SIGINT/SIGTERM. - -> **Note**: `go.mod` uses a `replace` pointing at a local checkout of -> authorizer-go, which carries the `client_credentials` support in -> `GetToken`. Drop the `replace` once the next authorizer-go release ships. diff --git a/with-microservices-go/go.mod b/with-microservices-go/go.mod index 6d1f48a..62b99ac 100644 --- a/with-microservices-go/go.mod +++ b/with-microservices-go/go.mod @@ -3,18 +3,18 @@ module github.com/authorizerdev/examples/with-microservices-go go 1.25.5 require ( - github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.4 + github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5 github.com/golang-jwt/jwt/v5 v5.2.2 ) require ( buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 // indirect - github.com/authorizerdev/authorizer-proto-go v0.1.0 // indirect - golang.org/x/net v0.51.0 // indirect - golang.org/x/sys v0.42.0 // indirect - golang.org/x/text v0.34.0 // indirect + github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 // indirect + golang.org/x/net v0.53.0 // indirect + golang.org/x/sys v0.43.0 // indirect + golang.org/x/text v0.36.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 // indirect - google.golang.org/grpc v1.81.1 // indirect + google.golang.org/grpc v1.82.1 // indirect google.golang.org/protobuf v1.36.11 // indirect ) diff --git a/with-microservices-go/go.sum b/with-microservices-go/go.sum index a93294a..edb12c3 100644 --- a/with-microservices-go/go.sum +++ b/with-microservices-go/go.sum @@ -1,9 +1,9 @@ buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 h1:s6hzCXtND/ICdGPTMGk7C+/BFlr2Jg5GyH0NKf4XGXg= buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1/go.mod h1:tvtbpgaVXZX4g6Pn+AnzFycuRK3MOz5HJfEGeEllXYM= -github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.4 h1:w8qQmAdP9OFiejsPuSsQqCRdWT29f7gHHFf1UTc8KGU= -github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.4/go.mod h1:1gnCE9aCctLn9TZRdyjkbyJIQnFJtK2nXkXoGvj40uQ= -github.com/authorizerdev/authorizer-proto-go v0.1.0 h1:oLGE2OuwCnE6Yr1tRt3fL0zh7L/HpPQfoeS4pgxszlQ= -github.com/authorizerdev/authorizer-proto-go v0.1.0/go.mod h1:cVUPv4XVeH3YeoFjfnl+ug/KlUinrGOAUZu3E+sjjHs= +github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5 h1:1XK8wIULavh2yySN7e7PjkfYA4tmduu+/r0U0mp00jU= +github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5/go.mod h1:K+T7TOq5sLxRefpI0buBKOOdHeaLD7vhK0lmH0XLSE8= +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 h1:te2ADwG6Xyi1VVB6z3+jz/n1I/gdhqEewZFYfeosfmI= +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1/go.mod h1:brXkT8HCo4XawfZ39ai2TQdgNRVFrYnRd5cSP899wHU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= @@ -30,19 +30,19 @@ go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfC go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= -golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= -golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= -golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= +golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= +golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= +golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= +golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 h1:PvEgGJf9C/1u5CHkInMg7UFYYUoiaQmW2LbtH0pjB78= google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ= -google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= +google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE= +google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= diff --git a/with-microservices/README.md b/with-microservices/README.md index 18c2d7c..bc9683a 100644 --- a/with-microservices/README.md +++ b/with-microservices/README.md @@ -48,8 +48,11 @@ crypto. line. Every internal hop is authenticated by the *calling service's own* machine token, verified the same way plus two machine-specific checks: `login_method === "service_account"` and the required scope in the `scope` - claim. User context travels as `X-User-Id` / `X-User-Email` headers, which - services accept **only** alongside a valid machine token. + claim. User context travels as an `X-User-Id` header, which services accept + **only** alongside a valid machine token. It carries the `sub` and nothing + else: profile claims like email are not in an access token — they live in + the ID token and at `/userinfo` — so a service that needs a profile fetches + one rather than trusting a forwarded header. 3. **Authorizer itself.** The only holder of the signing private key and the admin secret. Services hold nothing but their own `client_id`/`client_secret`. diff --git a/with-microservices/docker-compose.yml b/with-microservices/docker-compose.yml index 13a6a6b..974acb7 100644 --- a/with-microservices/docker-compose.yml +++ b/with-microservices/docker-compose.yml @@ -15,7 +15,12 @@ services: image: quay.io/authorizer/authorizer:local # placeholder — build from main command: - --database-type=sqlite - - --database-url=/data/authorizer.db + # The image runs as uid 1000 (`authorizer`). A named volume mounted at a + # path the image does not already own is created root-owned, and the + # process then cannot create the SQLite file. Keep the database inside + # /authorizer, which the image chowns to that uid. Demo-only: the data + # goes away with the container. + - --database-url=/authorizer/authorizer.db # RS256 requires an explicit keypair (the server refuses to boot without # one). This is the SAME well-known dev keypair `make dev` uses in the # server repo — public knowledge, demo only, NEVER deploy it. @@ -66,8 +71,6 @@ services: - --allowed-origins=authorizer:8080,localhost:8080 ports: - "8080:8080" - volumes: - - authorizer-data:/data setup: image: node:22-alpine @@ -123,6 +126,3 @@ services: # no ports: — internal only depends_on: - authorizer - -volumes: - authorizer-data: diff --git a/with-microservices/gateway/server.js b/with-microservices/gateway/server.js index ca212c9..223eb42 100644 --- a/with-microservices/gateway/server.js +++ b/with-microservices/gateway/server.js @@ -33,8 +33,14 @@ app.post("/api/orders", requireAuth(), async (req, res) => { "Content-Type": "application/json", Authorization: `Bearer ${token}`, // User context, asserted by the gateway after verifying the user JWT. + // + // `sub` is the only identity claim an access token is required to + // carry — profile claims like email live in the ID token and at + // /userinfo, and Authorizer does not put them here. Downstream + // services should key on the id; fetch the profile from /userinfo if + // they genuinely need one, rather than trusting a header that only + // sometimes has a value. "X-User-Id": req.auth.sub, - "X-User-Email": req.auth.email || "", }, body: JSON.stringify(req.body), }); diff --git a/with-microservices/orders-service/server.js b/with-microservices/orders-service/server.js index d19aa7e..88b741f 100644 --- a/with-microservices/orders-service/server.js +++ b/with-microservices/orders-service/server.js @@ -33,7 +33,6 @@ app.post("/orders", requireAuth({ machine: true, scope: "orders:write" }), async const order = { id: `ord_${orders.length + 1}`, user_id: userId, - user_email: req.headers["x-user-email"] || null, item: req.body.item || "unknown", amount_cents: req.body.amount_cents ?? 0, status: "pending", diff --git a/with-nextjs-13/package-lock.json b/with-nextjs-13/package-lock.json index 0a44985..d440de2 100644 --- a/with-nextjs-13/package-lock.json +++ b/with-nextjs-13/package-lock.json @@ -5,8 +5,8 @@ "packages": { "": { "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", - "@authorizerdev/authorizer-react": "^2.2.0-rc.6", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", + "@authorizerdev/authorizer-react": "^2.2.0-rc.7", "next": "^13.0.5", "react": "18.2.0", "react-dom": "18.2.0" @@ -22,9 +22,9 @@ } }, "node_modules/@authorizerdev/authorizer-js": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-3.3.0.tgz", - "integrity": "sha512-sxVroZPffB9IvmCSEE9ZFXplO6AyCfKsUjazUL/G7Cq4WN1diV4K376hY6UbFzSHcZ1K4UTvD1uzqZI2Pa1bwA==", + "version": "4.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-4.0.0-rc.0.tgz", + "integrity": "sha512-BVxzi9Dm4J5O6kDvvS18BrZwEaxkff2wKqW29cyMsj5s93T+OA+/bYaOlXOwLtPsabuoGUKONp+ZX05JksZ3UA==", "license": "MIT", "dependencies": { "cross-fetch": "^4.1.0" @@ -37,13 +37,12 @@ } }, "node_modules/@authorizerdev/authorizer-react": { - "version": "2.2.0-rc.6", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-2.2.0-rc.6.tgz", - "integrity": "sha512-gQU92EnsH2L6olR6Vu2ryj24MGxINmROoWtOVLGzHkdj5fAhkGQGJPV7BNdpMnTJdnNeo7oc7K2QNjqDW4zbyg==", + "version": "2.2.0-rc.7", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-2.2.0-rc.7.tgz", + "integrity": "sha512-45W/6vIyGCSSsGo847tc/RWr8ApuqLknuxWQW0IiupKNZWDMqsP8Vao2QR28qe8mRAXgzETfca5Hz6d3Yn4wEA==", "license": "MIT", "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", - "@storybook/preset-scss": "^1.0.3", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", "validator": "^13.11.0" }, "engines": { @@ -53,136 +52,6 @@ "react": ">=16" } }, - "node_modules/@authorizerdev/authorizer-react/node_modules/@storybook/preset-scss": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@storybook/preset-scss/-/preset-scss-1.0.3.tgz", - "integrity": "sha512-o9Iz6wxPeNENrQa2mKlsDKynBfqU2uWaRP80HeWp4TkGgf7/x3DVF2O7yi9N0x/PI1qzzTTpxlQ90D62XmpiTw==", - "license": "MIT", - "peerDependencies": { - "css-loader": "*", - "sass-loader": "*", - "style-loader": "*" - } - }, - "node_modules/@authorizerdev/authorizer-react/node_modules/css-loader": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.4.tgz", - "integrity": "sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==", - "license": "MIT", - "peer": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.40", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.6.3" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "webpack": "^5.27.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@authorizerdev/authorizer-react/node_modules/sass-loader": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-17.0.0.tgz", - "integrity": "sha512-0Ybm8ohBQ9LcrycVrFQp/KQBNX5a3Wda9/smS0mE/xLffzEnwvV8nykOzrbiSWNzTE3IB/jiXx8O4QmDPG2+Gw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 22.11.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT", - "peer": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, "node_modules/@next/env": { "version": "13.0.5", "resolved": "https://registry.npmjs.org/@next/env/-/env-13.0.5.tgz", @@ -426,205 +295,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/node": { - "version": "26.1.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz", - "integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==", - "license": "MIT", - "peer": true, - "dependencies": { - "undici-types": "~8.3.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0", - "peer": true - }, "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -657,54 +327,6 @@ "node": ">=0.4.0" } }, - "node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "peer": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -785,6 +407,7 @@ "version": "2.10.42", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz", "integrity": "sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==", + "dev": true, "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -818,6 +441,7 @@ "version": "4.28.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.5.tgz", "integrity": "sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -847,13 +471,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT", - "peer": true - }, "node_modules/camelcase-css": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", @@ -950,16 +567,6 @@ "node": ">= 6" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", @@ -997,13 +604,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT", - "peer": true - }, "node_modules/concurrently": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.5.0.tgz", @@ -1044,6 +644,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, "bin": { "cssesc": "bin/cssesc" }, @@ -1106,6 +707,7 @@ "version": "1.5.389", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.389.tgz", "integrity": "sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg==", + "dev": true, "license": "ISC" }, "node_modules/emoji-regex": { @@ -1114,100 +716,16 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/enhanced-resolve": { - "version": "5.24.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.2.tgz", - "integrity": "sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw==", - "license": "MIT", - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/es-module-lexer": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.0.tgz", - "integrity": "sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==", - "license": "MIT", - "peer": true - }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT", - "peer": true - }, "node_modules/fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -1236,23 +754,6 @@ "node": ">= 6" } }, - "node_modules/fast-uri": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz", - "integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause", - "peer": true - }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -1328,13 +829,6 @@ "node": ">=10.13.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC", - "peer": true - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1351,23 +845,11 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", - "peer": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1431,33 +913,11 @@ "node": ">=0.12.0" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT", - "peer": true - }, "node_modules/lilconfig": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", @@ -1467,20 +927,6 @@ "node": ">=10" } }, - "node_modules/loader-runner": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", - "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -1498,13 +944,6 @@ "loose-envify": "cli.js" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT", - "peer": true - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -1527,16 +966,6 @@ "node": ">=8.6" } }, - "node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/minimist": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", @@ -1546,67 +975,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimizer-webpack-plugin": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz", - "integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@minify-html/node": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "@swc/html": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "cssnano": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "html-minifier-terser": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, "node_modules/nanoid": { "version": "3.3.15", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", @@ -1625,13 +993,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT", - "peer": true - }, "node_modules/next": { "version": "13.0.5", "resolved": "https://registry.npmjs.org/next/-/next-13.0.5.tgz", @@ -1730,6 +1091,7 @@ "version": "2.0.51", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -1799,6 +1161,7 @@ "version": "8.5.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -1859,97 +1222,6 @@ "postcss": "^8.3.3" } }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "license": "ISC", - "peer": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "license": "MIT", - "peer": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", - "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "license": "MIT", - "peer": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "license": "ISC", - "peer": true, - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", - "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "license": "MIT", - "peer": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "license": "ISC", - "peer": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/postcss-nested": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", @@ -1985,7 +1257,8 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -2072,16 +1345,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -2149,39 +1412,6 @@ "loose-envify": "^1.1.0" } }, - "node_modules/schema-utils": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/shell-quote": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", @@ -2191,16 +1421,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -2210,17 +1430,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/spawn-command": { "version": "0.0.2-1", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", @@ -2253,23 +1462,6 @@ "node": ">=8" } }, - "node_modules/style-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", - "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.27.0" - } - }, "node_modules/styled-jsx": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.0.tgz", @@ -2296,6 +1488,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -2388,52 +1581,6 @@ } } }, - "node_modules/tapable": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", - "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.49.0.tgz", - "integrity": "sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/acorn": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", - "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", - "license": "MIT", - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2466,17 +1613,11 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, - "node_modules/undici-types": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", - "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", - "license": "MIT", - "peer": true - }, "node_modules/update-browserslist-db": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, "funding": [ { "type": "opencollective", @@ -2506,7 +1647,8 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true }, "node_modules/validator": { "version": "13.11.0", @@ -2516,107 +1658,12 @@ "node": ">= 0.10" } }, - "node_modules/watchpack": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", - "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", - "license": "MIT", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "license": "BSD-2-Clause" }, - "node_modules/webpack": { - "version": "5.108.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.108.4.tgz", - "integrity": "sha512-yur8LyJoeiWh47dErD+Ok7vlbmDsJ3UbbRPAoxbGJ54WpE2y5yVo5G/inUzujnYgw3tPmBRdn+G7PoxXaYC33w==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/estree": "^1.0.8", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.16.0", - "acorn-import-phases": "^1.0.3", - "browserslist": "^4.28.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.22.2", - "es-module-lexer": "^2.1.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "graceful-fs": "^4.2.11", - "loader-runner": "^4.3.2", - "mime-db": "^1.54.0", - "minimizer-webpack-plugin": "^5.6.1", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.3", - "tapable": "^2.3.0", - "watchpack": "^2.5.2", - "webpack-sources": "^3.5.0" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-sources": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.1.tgz", - "integrity": "sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", - "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", - "license": "MIT", - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/acorn-import-phases": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", - "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "acorn": "^8.14.0" - } - }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", diff --git a/with-nextjs-13/package.json b/with-nextjs-13/package.json index 4039cf4..9bddf14 100644 --- a/with-nextjs-13/package.json +++ b/with-nextjs-13/package.json @@ -8,8 +8,8 @@ "turboBuild": "tailwindcss input.css --output output.css && next build" }, "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", - "@authorizerdev/authorizer-react": "^2.2.0-rc.6", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", + "@authorizerdev/authorizer-react": "^2.2.0-rc.7", "next": "^13.0.5", "react": "18.2.0", "react-dom": "18.2.0" diff --git a/with-nextjs/package-lock.json b/with-nextjs/package-lock.json index 3491df3..1d9dee9 100644 --- a/with-nextjs/package-lock.json +++ b/with-nextjs/package-lock.json @@ -5,8 +5,8 @@ "packages": { "": { "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", - "@authorizerdev/authorizer-react": "^2.2.0-rc.6", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", + "@authorizerdev/authorizer-react": "^2.2.0-rc.7", "next": "^12.3.4", "react": "^18.2.0", "react-dom": "^18.2.0" @@ -31,9 +31,9 @@ } }, "node_modules/@authorizerdev/authorizer-js": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-3.3.0.tgz", - "integrity": "sha512-sxVroZPffB9IvmCSEE9ZFXplO6AyCfKsUjazUL/G7Cq4WN1diV4K376hY6UbFzSHcZ1K4UTvD1uzqZI2Pa1bwA==", + "version": "4.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-4.0.0-rc.0.tgz", + "integrity": "sha512-BVxzi9Dm4J5O6kDvvS18BrZwEaxkff2wKqW29cyMsj5s93T+OA+/bYaOlXOwLtPsabuoGUKONp+ZX05JksZ3UA==", "license": "MIT", "dependencies": { "cross-fetch": "^4.1.0" @@ -46,13 +46,12 @@ } }, "node_modules/@authorizerdev/authorizer-react": { - "version": "2.2.0-rc.6", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-2.2.0-rc.6.tgz", - "integrity": "sha512-gQU92EnsH2L6olR6Vu2ryj24MGxINmROoWtOVLGzHkdj5fAhkGQGJPV7BNdpMnTJdnNeo7oc7K2QNjqDW4zbyg==", + "version": "2.2.0-rc.7", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-2.2.0-rc.7.tgz", + "integrity": "sha512-45W/6vIyGCSSsGo847tc/RWr8ApuqLknuxWQW0IiupKNZWDMqsP8Vao2QR28qe8mRAXgzETfca5Hz6d3Yn4wEA==", "license": "MIT", "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", - "@storybook/preset-scss": "^1.0.3", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", "validator": "^13.11.0" }, "engines": { @@ -66,6 +65,7 @@ "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", @@ -76,32 +76,24 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -360,17 +352,6 @@ "node": ">= 8" } }, - "node_modules/@storybook/preset-scss": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@storybook/preset-scss/-/preset-scss-1.0.3.tgz", - "integrity": "sha512-o9Iz6wxPeNENrQa2mKlsDKynBfqU2uWaRP80HeWp4TkGgf7/x3DVF2O7yi9N0x/PI1qzzTTpxlQ90D62XmpiTw==", - "license": "MIT", - "peerDependencies": { - "css-loader": "*", - "sass-loader": "*", - "style-loader": "*" - } - }, "node_modules/@swc/helpers": { "version": "0.4.11", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", @@ -380,279 +361,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/node": { - "version": "26.1.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz", - "integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==", - "license": "MIT", - "peer": true, - "dependencies": { - "undici-types": "~8.3.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0", - "peer": true - }, - "node_modules/acorn": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", - "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", - "license": "MIT", - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-phases": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", - "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "acorn": "^8.14.0" - } - }, - "node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "peer": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -722,6 +430,7 @@ "version": "2.10.42", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz", "integrity": "sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==", + "dev": true, "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -760,6 +469,7 @@ "version": "4.28.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.5.tgz", "integrity": "sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -789,13 +499,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT", - "peer": true - }, "node_modules/camelcase-css": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", @@ -864,16 +567,6 @@ "node": ">= 6" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -893,46 +586,11 @@ "node-fetch": "^2.7.0" } }, - "node_modules/css-loader": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.4.tgz", - "integrity": "sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==", - "license": "MIT", - "peer": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.40", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.6.3" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "webpack": "^5.27.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, "license": "MIT", "bin": { "cssesc": "bin/cssesc" @@ -959,22 +617,9 @@ "version": "1.5.389", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.389.tgz", "integrity": "sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg==", + "dev": true, "license": "ISC" }, - "node_modules/enhanced-resolve": { - "version": "5.24.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.2.tgz", - "integrity": "sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw==", - "license": "MIT", - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", @@ -985,86 +630,16 @@ "node": ">= 0.4" } }, - "node_modules/es-module-lexer": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.0.tgz", - "integrity": "sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==", - "license": "MIT", - "peer": true - }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT", - "peer": true - }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", @@ -1095,23 +670,6 @@ "node": ">= 6" } }, - "node_modules/fast-uri": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz", - "integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause", - "peer": true - }, "node_modules/fastq": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", @@ -1187,23 +745,6 @@ "node": ">=10.13.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC", - "peer": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/hasown": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", @@ -1217,19 +758,6 @@ "node": ">= 0.4" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", - "peer": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1292,21 +820,6 @@ "node": ">=0.12.0" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/jiti": { "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", @@ -1323,13 +836,6 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT", - "peer": true - }, "node_modules/lilconfig": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", @@ -1350,20 +856,6 @@ "dev": true, "license": "MIT" }, - "node_modules/loader-runner": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", - "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -1376,13 +868,6 @@ "loose-envify": "cli.js" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT", - "peer": true - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -1407,77 +892,6 @@ "node": ">=8.6" } }, - "node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimizer-webpack-plugin": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz", - "integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@minify-html/node": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "@swc/html": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "cssnano": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "html-minifier-terser": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "postcss": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -1508,13 +922,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT", - "peer": true - }, "node_modules/next": { "version": "12.3.7", "resolved": "https://registry.npmjs.org/next/-/next-12.3.7.tgz", @@ -1616,6 +1023,7 @@ "version": "2.0.51", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.51.tgz", "integrity": "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -1701,6 +1109,7 @@ "version": "8.5.16", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -1812,69 +1221,6 @@ } } }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "license": "ISC", - "peer": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "license": "MIT", - "peer": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "license": "ISC", - "peer": true, - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "license": "ISC", - "peer": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/postcss-nested": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", @@ -1915,24 +1261,11 @@ "node": ">=4" } }, - "node_modules/postcss-selector-parser": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", - "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", - "license": "MIT", - "peer": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, "license": "MIT" }, "node_modules/queue-microtask": { @@ -2004,16 +1337,6 @@ "node": ">=8.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { "version": "1.22.12", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", @@ -2071,40 +1394,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/sass-loader": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-17.0.0.tgz", - "integrity": "sha512-0Ybm8ohBQ9LcrycVrFQp/KQBNX5a3Wda9/smS0mE/xLffzEnwvV8nykOzrbiSWNzTE3IB/jiXx8O4QmDPG2+Gw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 22.11.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -2114,49 +1403,6 @@ "loose-envify": "^1.1.0" } }, - "node_modules/schema-utils": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -2166,34 +1412,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/style-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", - "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.27.0" - } - }, "node_modules/styled-jsx": { "version": "5.0.7", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.7.tgz", @@ -2237,22 +1455,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -2318,46 +1520,6 @@ "node": ">=4" } }, - "node_modules/tapable": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", - "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser": { - "version": "5.49.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.49.0.tgz", - "integrity": "sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT", - "peer": true - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -2461,17 +1623,11 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/undici-types": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", - "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", - "license": "MIT", - "peer": true - }, "node_modules/update-browserslist-db": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, "funding": [ { "type": "opencollective", @@ -2511,6 +1667,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, "license": "MIT" }, "node_modules/validator": { @@ -2522,81 +1679,12 @@ "node": ">= 0.10" } }, - "node_modules/watchpack": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", - "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", - "license": "MIT", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "license": "BSD-2-Clause" }, - "node_modules/webpack": { - "version": "5.108.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.108.4.tgz", - "integrity": "sha512-yur8LyJoeiWh47dErD+Ok7vlbmDsJ3UbbRPAoxbGJ54WpE2y5yVo5G/inUzujnYgw3tPmBRdn+G7PoxXaYC33w==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/estree": "^1.0.8", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.16.0", - "acorn-import-phases": "^1.0.3", - "browserslist": "^4.28.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.22.2", - "es-module-lexer": "^2.1.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "graceful-fs": "^4.2.11", - "loader-runner": "^4.3.2", - "mime-db": "^1.54.0", - "minimizer-webpack-plugin": "^5.6.1", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.3", - "tapable": "^2.3.0", - "watchpack": "^2.5.2", - "webpack-sources": "^3.5.0" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-sources": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.1.tgz", - "integrity": "sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", diff --git a/with-nextjs/package.json b/with-nextjs/package.json index 2d67cd9..cf135b5 100644 --- a/with-nextjs/package.json +++ b/with-nextjs/package.json @@ -6,8 +6,8 @@ "start": "next start" }, "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", - "@authorizerdev/authorizer-react": "^2.2.0-rc.6", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", + "@authorizerdev/authorizer-react": "^2.2.0-rc.7", "next": "^12.3.4", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/with-org-saml/docker-compose.yml b/with-org-saml/docker-compose.yml index 254fdf2..96d7b1c 100644 --- a/with-org-saml/docker-compose.yml +++ b/with-org-saml/docker-compose.yml @@ -16,7 +16,12 @@ services: - "8080:8080" command: - --database-type=sqlite - - --database-url=/data/authorizer.db + # The image runs as uid 1000 (`authorizer`). A named volume mounted at a + # path the image does not already own is created root-owned, and the + # process then cannot create the SQLite file. Keep the database inside + # /authorizer, which the image chowns to that uid. Demo-only: the data + # goes away with the container. + - --database-url=/authorizer/authorizer.db - --jwt-type=HS256 # Obviously-fake dev secrets — change all of these outside a local demo. - --jwt-secret=dev-jwt-secret-CHANGE-ME @@ -25,8 +30,6 @@ services: - --client-id=00000000-demo-client-id-000000000000 - --client-secret=demo-client-secret-CHANGE-ME - --allowed-origins=localhost:8080,localhost:8090 - volumes: - - authorizer-data:/data keycloak: image: quay.io/keycloak/keycloak:latest @@ -43,6 +46,3 @@ services: # KC_HOSTNAME: https://.ngrok-free.app ports: - "8082:8082" - -volumes: - authorizer-data: diff --git a/with-org-sso-oidc/docker-compose.yml b/with-org-sso-oidc/docker-compose.yml index 1fd01c1..ccb2fb8 100644 --- a/with-org-sso-oidc/docker-compose.yml +++ b/with-org-sso-oidc/docker-compose.yml @@ -17,7 +17,12 @@ services: - "8080:8080" command: - --database-type=sqlite - - --database-url=/data/authorizer.db + # The image runs as uid 1000 (`authorizer`). A named volume mounted at a + # path the image does not already own is created root-owned, and the + # process then cannot create the SQLite file. Keep the database inside + # /authorizer, which the image chowns to that uid. Demo-only: the data + # goes away with the container. + - --database-url=/authorizer/authorizer.db - --jwt-type=HS256 # Obviously-fake dev secrets — change all of these outside a local demo. - --jwt-secret=dev-jwt-secret-CHANGE-ME @@ -26,8 +31,6 @@ services: - --client-id=00000000-demo-client-id-000000000000 - --client-secret=demo-client-secret-CHANGE-ME - --allowed-origins=localhost:8080,localhost:8090 - volumes: - - authorizer-data:/data keycloak: image: quay.io/keycloak/keycloak:latest @@ -45,6 +48,3 @@ services: # KC_HOSTNAME: https://.ngrok-free.app ports: - "8082:8082" - -volumes: - authorizer-data: diff --git a/with-python/README.md b/with-python/README.md index fcc2c8b..530ccfe 100644 --- a/with-python/README.md +++ b/with-python/README.md @@ -1,6 +1,6 @@ # Authorizer Example with Python -Signup, login and profile with the [Python SDK](https://github.com/authorizerdev/authorizer-python) (`authorizer-py` 0.2.0) sync client, plus an admin query listing users. +Signup, login and profile with the [Python SDK](https://github.com/authorizerdev/authorizer-python) (`authorizer-py` 0.3.0rc4) sync client, plus the admin client listing users. ## Run an Authorizer instance @@ -27,9 +27,12 @@ Defaults match `make dev`; override with `AUTHORIZER_URL`, `CLIENT_ID`, `ADMIN_S - Async variants exist for both clients: `AsyncAuthorizerClient`, `AsyncAuthorizerAdminClient`. - Admin operations authenticate with the `x-authorizer-admin-secret` header, normally via `AuthorizerAdminClient`. -## Known gaps in `authorizer-py` 0.2.0 +## Note on the MFA offer -Two things this example works around, both fixed by an SDK release rather than by the example: - -- **No `skip_mfa_setup`.** Since server 2.4.0 MFA is on by default, so signup/login withhold the access token and return `Proceed to mfa setup`; declining the offer is what releases the token. The SDK has no typed call for it, so `main.py` goes through the `graphql_query` escape hatch. The call is identified by the MFA session cookie, which the server marks `Secure` — httpx keeps it in its jar but will not replay it over plain `http`, so the example passes it by hand. -- **Paginated admin queries are rejected by a 2.4.0 server.** `AuthorizerAdminClient.users()` still sends `$data: PaginatedRequest`, a type the server renamed to `ListUsersRequest`, so it fails with `Unknown type "PaginatedRequest"`. `verification_requests()`, `webhooks()` and `email_templates()` have the same drift. `main.py` issues the `_users` query directly instead. +Since server 2.4.0 MFA is on by default, so signup/login withhold the access +token and return `Proceed to mfa setup`; declining the offer with +`skip_mfa_setup` is what releases it. That call is identified by the MFA +session cookie, which the server marks `Secure` (`--app-cookie-secure` +defaults to true) — httpx keeps it in its jar but will not replay it over +plain `http`, so `main.py` reads it out of the jar and passes it by hand. A +deployment on https needs none of that. diff --git a/with-python/main.py b/with-python/main.py index 4370672..25d12ea 100644 --- a/with-python/main.py +++ b/with-python/main.py @@ -14,23 +14,19 @@ import time from authorizer import ( + AuthorizerAdminClient, AuthorizerClient, + AuthToken, LoginRequest, SignUpRequest, + SkipMfaSetupRequest, ) AUTHORIZER_URL = os.environ.get("AUTHORIZER_URL", "http://localhost:8080") CLIENT_ID = os.environ.get("CLIENT_ID", "kbyuFDidLLm280LIwVFiazOqjO3ty8KH") ADMIN_SECRET = os.environ.get("ADMIN_SECRET", "admin") -SKIP_MFA_SETUP = """ -mutation ($p: SkipMfaSetupRequest!) { - skip_mfa_setup(params: $p) { access_token expires_in } -} -""" - - -def skip_mfa_offer(client: AuthorizerClient, email: str) -> dict: +def skip_mfa_offer(client: AuthorizerClient, email: str) -> "AuthToken": """Decline an MFA setup offer and collect the access token it withheld. Since 2.4.0 MFA is on by default, so signup/login enrol nothing but OFFER @@ -40,18 +36,15 @@ def skip_mfa_offer(client: AuthorizerClient, email: str) -> dict: fails under --enforce-mfa, where declining is not permitted; a real app would drive the TOTP/OTP setup screen instead of calling this. - Two workarounds live here. authorizer-py 0.2.0 has no typed - skip_mfa_setup, so the call goes through the graphql_query escape hatch. - And the call is identified by the MFA session cookie set on the - signup/login response, which the server marks Secure -- so httpx keeps it - in its jar but will not replay it over plain http, and it has to be sent - by hand. + One workaround lives here. The call is identified by the MFA session + cookie set on the signup/login response, which the server marks Secure + (--app-cookie-secure defaults to true) -- so httpx keeps it in its jar but + will not replay it over plain http, and it has to be sent by hand. """ session = client._http.cookies.get("mfa_session") - data = client.graphql_query( - SKIP_MFA_SETUP, {"p": {"email": email}}, {"Cookie": f"mfa_session={session}"} + return client.skip_mfa_setup( + SkipMfaSetupRequest(email=email), {"Cookie": f"mfa_session={session}"} ) - return data["skip_mfa_setup"] def main() -> None: @@ -73,7 +66,7 @@ def main() -> None: # MFA setup was offered and the token withheld -- decline it. print("mfa setup offered:", token.message) skipped = skip_mfa_offer(client, email) - access_token, expires_in = skipped["access_token"], skipped["expires_in"] + access_token, expires_in = skipped.access_token, skipped.expires_in print("mfa setup declined, token issued") print("logged in, token expires in:", expires_in, "seconds") @@ -81,22 +74,15 @@ def main() -> None: profile = client.get_profile({"Authorization": f"Bearer {access_token}"}) print("profile:", profile.email, "id:", profile.id) - # ---- Admin operations (authenticate with x-authorizer-admin-secret) ---- - # This SHOULD be AuthorizerAdminClient(...).users(), but that method is - # broken against a 2.4.0 server: authorizer-py 0.2.0 still sends - # `$data: PaginatedRequest`, and the server renamed that input type to - # ListUsersRequest, so the query is rejected with `Unknown type - # "PaginatedRequest"`. The same drift affects the SDK's verification_requests, - # webhooks and email_templates queries. Until the SDK catches up, issue the - # query directly -- graphql_query takes per-call headers, so the admin - # secret goes on the request the same way the admin client would send it. - users = client.graphql_query( - "query { _users { pagination { total } users { email } } }", - headers={"x-authorizer-admin-secret": ADMIN_SECRET}, - )["_users"] - print(f"admin: {users['pagination']['total']} user(s) on this instance:") - for user in users["users"]: - print(" -", user["email"]) + # ---- Admin client (authenticates with x-authorizer-admin-secret) ---- + admin = AuthorizerAdminClient( + authorizer_url=AUTHORIZER_URL, admin_secret=ADMIN_SECRET + ) + users = admin.users() # no argument = default pagination + print(f"admin: {users.pagination.total} user(s) on this instance:") + for user in users.users: + print(" -", user.email) + admin.close() client.close() diff --git a/with-python/requirements.txt b/with-python/requirements.txt index 5f54ac3..176d5e7 100644 --- a/with-python/requirements.txt +++ b/with-python/requirements.txt @@ -1 +1 @@ -authorizer-py==0.2.0 +authorizer-py==0.3.0rc4 diff --git a/with-rag-fga/common.py b/with-rag-fga/common.py index 519236e..1ebd3d5 100644 --- a/with-rag-fga/common.py +++ b/with-rag-fga/common.py @@ -44,6 +44,29 @@ def _load_dotenv() -> None: AUTHORIZER_ADMIN_SECRET: str = os.environ.get("AUTHORIZER_ADMIN_SECRET", "") +def login_persona(client, email: str): + """Log a persona in, settling the MFA setup offer if one is made. + + Since server 2.4.0 MFA is on by default, so a user who has never decided + about it is OFFERED a setup: login returns "Proceed to mfa setup" and + withholds the access token until they enrol a factor or decline. These + personas are demo fixtures with no second factor, so they decline. + + skip_mfa_setup is identified by the MFA session cookie the login response + set, plus the email. The server marks that cookie Secure + (--app-cookie-secure defaults to true), so httpx keeps it in its jar but + will not replay it over plain http and it has to be sent by hand. A + deployment on https needs none of that. + """ + from authorizer import LoginRequest, SkipMfaSetupRequest + + res = client.login(LoginRequest(email=email, password=DEMO_PASSWORD)) + if res.access_token: + return res + cookie = {"Cookie": f"mfa_session={client._http.cookies.get('mfa_session')}"} + return client.skip_mfa_setup(SkipMfaSetupRequest(email=email), cookie) + + def require(name: str, value: str) -> str: """Return value or exit with a clear message pointing at .env.example.""" if not value: diff --git a/with-rag-fga/rag.py b/with-rag-fga/rag.py index 2f3b0aa..0aadcd8 100644 --- a/with-rag-fga/rag.py +++ b/with-rag-fga/rag.py @@ -26,7 +26,6 @@ AuthorizerClient, CheckPermissionsRequest, ListPermissionsRequest, - LoginRequest, PermissionCheckInput, ) from authorizer.exceptions import AuthorizerConnectionError, AuthorizerError @@ -34,10 +33,10 @@ from common import ( AUTHORIZER_CLIENT_ID, AUTHORIZER_URL, - DEMO_PASSWORD, DOCS_DIR, DOCUMENT_TYPE, PERSONAS, + login_persona, VIEW_RELATION, require, ) @@ -212,7 +211,7 @@ def main() -> None: try: email = PERSONAS[args.user] try: - login = client.login(LoginRequest(email=email, password=DEMO_PASSWORD)) + login = login_persona(client, email) except (AuthorizerError, AuthorizerConnectionError) as e: raise SystemExit( f"error: login failed for {email}: {e}\n" diff --git a/with-rag-fga/requirements.txt b/with-rag-fga/requirements.txt index 81f7eb4..89342a8 100644 --- a/with-rag-fga/requirements.txt +++ b/with-rag-fga/requirements.txt @@ -1,4 +1,4 @@ # Official Authorizer Python SDK: https://pypi.org/project/authorizer-py/ -authorizer-py>=0.2.0 +authorizer-py>=0.3.0rc4 # Small, pure-Python BM25 ranking (the only retrieval dependency) rank-bm25>=0.2.2 diff --git a/with-rag-fga/seed.py b/with-rag-fga/seed.py index 03740e5..147741c 100644 --- a/with-rag-fga/seed.py +++ b/with-rag-fga/seed.py @@ -35,8 +35,7 @@ FgaTupleInput, FgaWriteModelRequest, FgaWriteTuplesRequest, - LoginRequest, - PaginatedRequest, + ListUsersRequest, PaginationRequest, SignUpRequest, ) @@ -48,6 +47,7 @@ AUTHORIZER_URL, DEMO_PASSWORD, PERSONAS, + login_persona, require, ) @@ -94,6 +94,7 @@ def ensure_user( admin: AuthorizerAdminClient, client: AuthorizerClient, email: str ) -> str: """Sign the user up (tolerating 'already exists'), return their user id.""" + created = True try: res = client.signup( SignUpRequest( @@ -103,17 +104,21 @@ def ensure_user( if res.user and res.user.id: print(f" created user {email}") return res.user.id + # Signup succeeded but withheld the user: since 2.4.0 an MFA setup is + # offered first, and nothing is authenticated until it is settled. The + # account exists; resolve its id below. except AuthorizerError as signup_error: + created = False # Signup errors are deliberately generic. A successful login with the # demo password is the reliable "already seeded" signal. try: - client.login(LoginRequest(email=email, password=DEMO_PASSWORD)) + login_persona(client, email) except AuthorizerError: raise SystemExit(f"signup failed for {email}: {signup_error}") from None - users = admin.users(PaginatedRequest(pagination=PaginationRequest(limit=100))) + users = admin.users(ListUsersRequest(pagination=PaginationRequest(limit=100))) for user in users.users: if user.email == email: - print(f" user {email} already exists") + print(f" {'created' if created else 'found existing'} user {email}") return user.id raise SystemExit(f"could not resolve id for existing user {email}") diff --git a/with-react-native-expo/package-lock.json b/with-react-native-expo/package-lock.json index a66f734..bfff373 100644 --- a/with-react-native-expo/package-lock.json +++ b/with-react-native-expo/package-lock.json @@ -8,7 +8,7 @@ "name": "with-react-native-expo", "version": "1.0.0", "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", "expo": "~49.0.15", "expo-auth-session": "~5.0.2", "expo-crypto": "~12.4.1", @@ -36,9 +36,9 @@ } }, "node_modules/@authorizerdev/authorizer-js": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-3.3.0.tgz", - "integrity": "sha512-sxVroZPffB9IvmCSEE9ZFXplO6AyCfKsUjazUL/G7Cq4WN1diV4K376hY6UbFzSHcZ1K4UTvD1uzqZI2Pa1bwA==", + "version": "4.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-4.0.0-rc.0.tgz", + "integrity": "sha512-BVxzi9Dm4J5O6kDvvS18BrZwEaxkff2wKqW29cyMsj5s93T+OA+/bYaOlXOwLtPsabuoGUKONp+ZX05JksZ3UA==", "license": "MIT", "dependencies": { "cross-fetch": "^4.1.0" diff --git a/with-react-native-expo/package.json b/with-react-native-expo/package.json index c2e0df7..214201f 100644 --- a/with-react-native-expo/package.json +++ b/with-react-native-expo/package.json @@ -9,7 +9,7 @@ "web": "expo start --web" }, "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", "expo": "~49.0.15", "expo-auth-session": "~5.0.2", "expo-crypto": "~12.4.1", diff --git a/with-react/package-lock.json b/with-react/package-lock.json index 29dce9a..2a7ce50 100644 --- a/with-react/package-lock.json +++ b/with-react/package-lock.json @@ -8,7 +8,7 @@ "name": "authorizer-demo", "version": "1.0.0", "dependencies": { - "@authorizerdev/authorizer-react": "^2.2.0-rc.6", + "@authorizerdev/authorizer-react": "^2.2.0-rc.7", "history": "5.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -33,9 +33,9 @@ } }, "node_modules/@authorizerdev/authorizer-js": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-3.3.0.tgz", - "integrity": "sha512-sxVroZPffB9IvmCSEE9ZFXplO6AyCfKsUjazUL/G7Cq4WN1diV4K376hY6UbFzSHcZ1K4UTvD1uzqZI2Pa1bwA==", + "version": "4.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-js/-/authorizer-js-4.0.0-rc.0.tgz", + "integrity": "sha512-BVxzi9Dm4J5O6kDvvS18BrZwEaxkff2wKqW29cyMsj5s93T+OA+/bYaOlXOwLtPsabuoGUKONp+ZX05JksZ3UA==", "license": "MIT", "dependencies": { "cross-fetch": "^4.1.0" @@ -48,13 +48,12 @@ } }, "node_modules/@authorizerdev/authorizer-react": { - "version": "2.2.0-rc.6", - "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-2.2.0-rc.6.tgz", - "integrity": "sha512-gQU92EnsH2L6olR6Vu2ryj24MGxINmROoWtOVLGzHkdj5fAhkGQGJPV7BNdpMnTJdnNeo7oc7K2QNjqDW4zbyg==", + "version": "2.2.0-rc.7", + "resolved": "https://registry.npmjs.org/@authorizerdev/authorizer-react/-/authorizer-react-2.2.0-rc.7.tgz", + "integrity": "sha512-45W/6vIyGCSSsGo847tc/RWr8ApuqLknuxWQW0IiupKNZWDMqsP8Vao2QR28qe8mRAXgzETfca5Hz6d3Yn4wEA==", "license": "MIT", "dependencies": { - "@authorizerdev/authorizer-js": "^3.3.0", - "@storybook/preset-scss": "^1.0.3", + "@authorizerdev/authorizer-js": "^4.0.0-rc.0", "validator": "^13.11.0" }, "engines": { @@ -3197,17 +3196,6 @@ "@sinonjs/commons": "^1.7.0" } }, - "node_modules/@storybook/preset-scss": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@storybook/preset-scss/-/preset-scss-1.0.3.tgz", - "integrity": "sha512-o9Iz6wxPeNENrQa2mKlsDKynBfqU2uWaRP80HeWp4TkGgf7/x3DVF2O7yi9N0x/PI1qzzTTpxlQ90D62XmpiTw==", - "license": "MIT", - "peerDependencies": { - "css-loader": "*", - "sass-loader": "*", - "style-loader": "*" - } - }, "node_modules/@surma/rollup-plugin-off-main-thread": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", @@ -5997,42 +5985,6 @@ "node": ">=4" } }, - "node_modules/css-loader": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.4.tgz", - "integrity": "sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==", - "license": "MIT", - "peer": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.40", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.6.3" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "webpack": "^5.27.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, "node_modules/css-minimizer-webpack-plugin": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", @@ -14807,40 +14759,6 @@ "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", "license": "CC0-1.0" }, - "node_modules/sass-loader": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-17.0.0.tgz", - "integrity": "sha512-0Ybm8ohBQ9LcrycVrFQp/KQBNX5a3Wda9/smS0mE/xLffzEnwvV8nykOzrbiSWNzTE3IB/jiXx8O4QmDPG2+Gw==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 22.11.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -15668,23 +15586,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/style-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", - "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.27.0" - } - }, "node_modules/stylehacks": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", diff --git a/with-react/package.json b/with-react/package.json index 5cdec51..64633da 100644 --- a/with-react/package.json +++ b/with-react/package.json @@ -5,7 +5,7 @@ "keywords": [], "main": "src/index.js", "dependencies": { - "@authorizerdev/authorizer-react": "^2.2.0-rc.6", + "@authorizerdev/authorizer-react": "^2.2.0-rc.7", "history": "5.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/with-spiffe/docker-compose.yaml b/with-spiffe/docker-compose.yaml index aac86ed..01029dd 100644 --- a/with-spiffe/docker-compose.yaml +++ b/with-spiffe/docker-compose.yaml @@ -61,7 +61,12 @@ services: - "8080:8080" command: - --database-type=sqlite - - --database-url=/data/authorizer.db + # The image runs as uid 1000 (`authorizer`). A named volume mounted at a + # path the image does not already own is created root-owned, and the + # process then cannot create the SQLite file. Keep the database inside + # /authorizer, which the image chowns to that uid. Demo-only: the data + # goes away with the container. + - --database-url=/authorizer/authorizer.db - --admin-secret=admin - --client-id=kbyuFDidLLm280LIwVFiazOqjO3ty8KH - --client-secret=60Op4HFM0I8ajz0WdiStAbziZ-VFQttXuxixHHs2R7r7-CW8GR79l-mmLqMhc-Sa @@ -105,8 +110,6 @@ services: 9Wo4kuaDmMPvMkdl6/wGOwAuIuHpmdfGh0hyLMdgpMqvFyEHuagCy+yFV6ESgVi2 rOp1g28iISbjpMTkNikbCBuL/TeaSdmEPwIDAQAB -----END RSA PUBLIC KEY----- - volumes: - - authorizer-data:/data workload: build: ./workload @@ -130,4 +133,3 @@ volumes: spire-server-socket: spire-agent-data: spiffe-workload-api: - authorizer-data: diff --git a/with-spiffe/workload/Dockerfile b/with-spiffe/workload/Dockerfile index 93e7f88..073dc42 100644 --- a/with-spiffe/workload/Dockerfile +++ b/with-spiffe/workload/Dockerfile @@ -1,8 +1,3 @@ -# NOTE: go.mod carries a `replace => ../../../authorizer-go` for the unreleased -# SDK client_assertion support. That path is outside this build context, so run -# go mod vendor -# in this directory first (the vendor/ dir makes the replace path irrelevant), -# or drop the replace once the next authorizer-go tag ships. FROM golang:1.25-alpine AS build WORKDIR /src COPY . . diff --git a/with-spiffe/workload/go.mod b/with-spiffe/workload/go.mod index 876d6e1..93fcdb1 100644 --- a/with-spiffe/workload/go.mod +++ b/with-spiffe/workload/go.mod @@ -3,25 +3,20 @@ module github.com/authorizerdev/examples/with-spiffe/workload go 1.25.5 require ( - github.com/authorizerdev/authorizer-go v0.0.0 + github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5 github.com/spiffe/go-spiffe/v2 v2.6.0 ) require ( buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 // indirect github.com/go-jose/go-jose/v4 v4.1.4 // indirect - golang.org/x/net v0.51.0 // indirect - golang.org/x/sys v0.42.0 // indirect - golang.org/x/text v0.34.0 // indirect + golang.org/x/net v0.53.0 // indirect + golang.org/x/sys v0.43.0 // indirect + golang.org/x/text v0.36.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 // indirect - google.golang.org/grpc v1.81.1 // indirect + google.golang.org/grpc v1.82.1 // indirect google.golang.org/protobuf v1.36.11 // indirect ) - -// The client_assertion fields (GetTokenRequest.ClientAssertion / -// ClientAssertionType, GrantTypeClientCredentials) are on authorizer-go main -// but not yet in a tagged release. Drop this replace (and pin the next -// released tag) once it ships. -replace github.com/authorizerdev/authorizer-go => ../../../authorizer-go diff --git a/with-spiffe/workload/go.sum b/with-spiffe/workload/go.sum index 5426eda..ac0ecc7 100644 --- a/with-spiffe/workload/go.sum +++ b/with-spiffe/workload/go.sum @@ -2,6 +2,10 @@ buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-202604152011 buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1/go.mod h1:tvtbpgaVXZX4g6Pn+AnzFycuRK3MOz5HJfEGeEllXYM= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5 h1:1XK8wIULavh2yySN7e7PjkfYA4tmduu+/r0U0mp00jU= +github.com/authorizerdev/authorizer-go/v2 v2.2.0-rc.5/go.mod h1:K+T7TOq5sLxRefpI0buBKOOdHeaLD7vhK0lmH0XLSE8= +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1 h1:te2ADwG6Xyi1VVB6z3+jz/n1I/gdhqEewZFYfeosfmI= +github.com/authorizerdev/authorizer-proto-go v0.2.0-rc.1/go.mod h1:brXkT8HCo4XawfZ39ai2TQdgNRVFrYnRd5cSP899wHU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -36,20 +40,20 @@ go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfC go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= -golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= -golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= -golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= +golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= +golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= +golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= +golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68 h1:PvEgGJf9C/1u5CHkInMg7UFYYUoiaQmW2LbtH0pjB78= google.golang.org/genproto/googleapis/rpc v0.0.0-20260523011958-0a33c5d7ca68/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ= -google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= +google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE= +google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/with-spiffe/workload/main.go b/with-spiffe/workload/main.go index 7c042c2..ba0fa72 100644 --- a/with-spiffe/workload/main.go +++ b/with-spiffe/workload/main.go @@ -16,7 +16,7 @@ import ( "os" "time" - authorizer "github.com/authorizerdev/authorizer-go" + authorizer "github.com/authorizerdev/authorizer-go/v2" "github.com/spiffe/go-spiffe/v2/svid/jwtsvid" "github.com/spiffe/go-spiffe/v2/workloadapi" ) diff --git a/with-vanilla-js-custom-ui/index.html b/with-vanilla-js-custom-ui/index.html index 0fea427..e4bccf8 100644 --- a/with-vanilla-js-custom-ui/index.html +++ b/with-vanilla-js-custom-ui/index.html @@ -39,7 +39,7 @@

Foo Bar!

mollit anim id est laborum.

- + + +